日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

二重ループをなくす方法

たまたま見つけたブログ
最近、一度見つけた記事を忘れる/見つけられない、ことが多発しているのでメモ
expand.grid関数・outer関数を使って2重forループを美しく書く - My Life as a Mock Quant
今更ながら、ブログはこういうときに便利と実感

> x.seq <- 1:3
> expand.grid(x.seq, x.seq)
  Var1 Var2
1    1    1
2    2    1
3    3    1
4    1    2
5    2    2
6    3    2
7    1    3
8    2    3
9    3    3
> apply(expand.grid(x.seq, x.seq), 1, prod)
[1] 1 2 3 2 4 6 3 6 9

とするようだ
outer関数はRjpwikでも良く見るけど、expand.gridは初出に思った