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という値を評価してくれるんでループの番号を拾えるってこと。