リスト内の項目の名前と値の両方に個別にアクセスする必要がある場合、R内のリストを反復する最も効率的な方法は何ですか?リスト内のリストを効率的に反復する
lst <- list(a = 1, b = 2)
for(i in lst) {
# ...
}
その後、私は唯一の値を取得し、名前にアクセスする方法を見ることができない:私はのような何かをしようとした場合
。
lst <- list(a = 1, b = 2)
for(i in names(lst)) {
# something with i
# something with lst[[i]]
}
しかし、私は、私が遅いと仮定し、その名前のリストから各項目にアクセスするので、これは私にはひどく非効率です:
だから現在私がやります。私ができることを避けるためには:
lst <- list(a = 1, b = 2)
for(i in seq_along(lst)) {
# something with names(lst)[i]
# something with lst[[i]]
}
しかし、これはもう少し効率的かどうかは分かりません。
これらのいずれよりも効率的な方法はありますか?もしそうでなければ、私はこれらのどれを使うべきですか?
編集:
this questionへの答えと@Gladwellは別の提案を与える:
lst <- list(a = 1, b = 2)
names_lst <- names(lst)
for(i in seq_along(lst)) {
# something with names_lst[i]
# something with lst[[i]]
}
これは最速のオプションですか?それはどんな方法で改善することができますか?
[FUN内のlapply index namesにアクセスする]の可能な複製(http://stackoverflow.com/questions/9950144/access-lapply-index-names-inside-fun) –
ありがとう、そのアプローチは速くなるようです。私はこれを行う方法を求めていないので、これは重複した質問ではないと思う(私はすでに遅い方法を知っている)。私は最も速い方法を知りたいと思っています。そして、受け入れられた答えのアプローチのスピードの比較はありません。 – Danny