我有以下嵌套循环:
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]
}
肯定有更好的方法,不是吗?(澄清一下,我不想迭代索引......我认为必须有一种方法可以直接迭代产品中的元组。)