Предполагая, что у нас есть следующие упрощенные векторы (в действительности они содержат гораздо больше значений):
n <- c(1,2)
x <- c(4,5,6)
y <- c(7,8,9)
#to get all possible combinations, we can use expand.grid
df <- expand.grid(n=n,
x=x,
y=y
)
> df
n x y
1 4 7
2 4 7
1 5 7
2 5 7
1 6 7
2 6 7
1 4 8
2 4 8
1 5 8
2 5 8
1 6 8
2 6 8
1 4 9
2 4 9
1 5 9
2 5 9
1 6 9
2 6 9
Однако я бы хотел векторы x , y иметь комбинацию, в которой рассматриваются только элементы с одинаковыми значениями индекса, т.е. (x1, y1), (x2, y2), (x3, y3), но НЕ (x1, y2), (x1, y3) и т. д. c. в то время как вектор n все еще используется как обычно (все его элементы «соединены» с результатом комбинации x и y).
Другими словами, я хотел бы получить следующий df :
n x y
1 4 7
2 4 7
1 5 8
2 5 8
1 6 9
2 6 9
если бы n вектор имел 3 элемента, т.е. n <- (1, 2, 3), то мы бы получили: </p>
n x y
1 4 7
2 4 7
3 4 7
1 5 8
2 5 8
3 5 8
1 6 9
2 6 9
3 6 9