リストがあります。各要素は数値ベクトルです。各番号の範囲は0から1までですが、私は.95以上のものだけに興味がありますが、ベクター上での位置と他のすべての番号は、それぞれの位置を相対的にプロットする必要があります。複数レベルのリストの要素をループなしで置換する
l1 = list(c(runif(20)),c(runif(21)),c(runif(22)),c(runif(19)))
ので、私はそうのようlapply用いて、0に等しい0.95以下のすべての数を設定しようとした:
l1 = lapply(l1, function(x){x[x<.95]=0})
これだけ入力リストとして要素の等しい数のリストを返す(AS 1つは期待される)が、各要素は単にゼロである。
ので、私はそうのようなforループでそれを試してみました:
for(i in 1:length(l1))
{
l1[[i]][l1[[i]]<.95]=0
}
をし、それが働きました。各要素は入力ベクトルと同じ長さであり、0だけ含まれ、それよりも大きい数値.95
誰かがなぜラッパーがうまくいかないのか説明できますか?私はforループを使わなくてもいいと思っています。なぜなら、私はそれらが遅いと信じられるようになり、私が実際に働いているデータセットはずっと大きくなっています。
いつものように、
すべてのヘルプは高く評価され、
乾杯、
デイビー
ブリリアント。ジェームスとnograpesの両方に感謝! –