2016-08-20 5 views
1

私は配列配列とスカラーでapplyを使用するにはどうすればよいですか?

a = c(1,2,3,1,2,3,1,2,3,1,2,3) 

を持っている場合、私は1の各スカラーに「これ」機能を適用したいと思います:、私はlapply、適用すると、この操作をベクトルんか3

l = list() 
for(i in 1:3){ 
l[[i]] = which(a == i) 
} 

地図?

+1

は、あなたが探していますより一般的なものやこの具体的な例を単純化するためには? –

答えて

2

lapplyの主な引数は、最終的なリスト要素の次元でなければなりません。どちらがあなたがそう、あなたのfor例ではオーバーループしている:あなたが使用することができます

a = c(1,2,3,1,2,3,1,2,3,1,2,3) 
lapply(1:3, function(x) which(a == x)) 

また、匿名関数にaをコーディングしない場合:

lapply(1:3, function(x, y) which(y == x), y = a) 
+1

第2のものが私が探していたものです。 "a"要素に対して関数を "適用しない"方法を知っていません。要素ごとに私は追加の議論について考えなかった。ありがとうございました – Sojers

関連する問題