次のネストされたループがあります。
for (x in xs) {
for (y in ys) {
# Do something with x and y
}
}
これを平らにしたいので、2 つのベクトルのデカルト積を作成し、結果を反復処理することを考え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]
}
きっともっと良い方法があるはずですよね?(明確にするために、私はインデックスを反復処理したくありません…製品のタプルを直接反復処理する方法が必要だと思います。)