Итерировать по декартовому произведению векторов
У меня есть следующий вложенный цикл:
for (x in xs) {
for (y in ys) {
# Do something with x and y
}
}
Который я хотел бы сплющить, поэтому я подумал о построении декартова произведения двух векторовxs
а такжеys
и итерации по результату. В Python это было бы тривиально:
for xy in product(xs, ys):
# x, y = xy[0], xy[1]
Но в R самый простой эквивалент, который я нашел, выглядит устрашающе:
xys <- expand.grid(xs, ys)
for (i in 1 : nrow(xys)) {
xy <- as.vector(xys[i, ])
# x <- xy[1], y <- xy[2]
}
Конечно, должен быть лучший путь, нет? (Чтобы уточнить, я не хочу перебиратьindex & # x2026; & # xA0; Я думаю, что должен быть способ прямой итерации по кортежам в продукте.)