Reputation: 193
I have some vectors like this
V1 = c(1,2,3,4,5)
V2 = c(7,8,9,10,11)
V3 = c(15,16,17,18,19)
V4 = c(3,4,5,6,7)
I would like to get all possible combinations from these vectors that look like this [V1[i],V2[j],V3[k],v4[z]]
and that sums up to 3+9+17+5.
This is a bit different from the duplicate R: sample() command subject to a constraint because I would like to get all combinations with one element from each vector and not get all combination from one vector. A possible solution should have one element from each vector.
For example the following are solutions
[1,11,17,5]
[2,8,18,6]
[5,9,15,5]
[3,11,16,3]
and many others are. The solutions can have duplicated values which is fine.
Any ideas on how to implement this in R? I am a beginner in R and I hope really to get some answers.
Upvotes: 0
Views: 140
Reputation: 2361
If I understand your questions correctly, you are probably looking for expand.grid
:
> expand.grid( V1=V1, V2=V2, V3=V3, V4=V4 )[1:5,]
V1 V2 V3 V4
1 1 7 15 3
2 2 7 15 3
3 3 7 15 3
4 4 7 15 3
5 5 7 15 3
...
This will yield all a data.frame with one row per combination
Upvotes: 1