apply関数を適用中に今何番目のループなのかを計算する
こんな書き方でイケた。
x <- matrix(1:9,3,3) apply(x, 1, function(y){evalq(i, parent.frame())})
実行すると
> x <- matrix(1:9,3,3) > apply(x, 2, function(y){evalq(i, parent.frame())}) [1] 1 2 3
となって現在のループ番号がちゃんと引ける。
parent.frameってのはsys.frameへのシノニムになってて、こいつは今回の場合”一個上の階層”、つまりapplyのループ回してる所でiという値を評価してくれるんでループの番号を拾えるってこと。