2016-09-25 10 views
0

多くのリスト、データフレーム、などに索引付けする方法はありますか?、R?すなわち、は、一般に?たとえば、リストbの2番目の要素の2番目の要素のリストをc(a[[2]][[2]],b[[2]][[2]])で取得できますが、各リストの名前とそれぞれのインデックスの角かっこを記述しないとどうすればいいですか?動的で一般的なRの索引付け

入力:

l1 <- as.list(c(1,2,3,4,5)) 
l2 <- as.list(c(6,7,8,9,10)) 
a <- list(l1,l2) 

l4 <- as.list(c(1,2,3,4,5)) 
l5 <- as.list(c(6,7,8,9,10)) 
b <- list(l4,l5) 

所望の出力:

[1] 7 7 

私はあなただけ上位ネストされたリストのリストを作成することができることを知っている - 同じ命名規則を想定した - これに:

nol <- objects() 
nol <- grep("^[a-z]$", nol, value=TRUE) 

このリスト全体に適用する方法はわかりません。

答えて

0

次のようにあなたがvapply経由でこれを行うことができます:ここ

vapply(mget(nol), function(x) x[[2]][[2]], FUN.VALUE = double(1), USE.NAMES = FALSE) 

アイデアはmgetがあなたのオブジェクトのリストを与えることです。 list(a,b)で作成することもできます。そして、匿名関数function(x) x[[2]][[2]]はあなたの値を返します。

+1

素晴らしい!一つのこと:私はそれがトレードオフだと知っていますが、 'vapply'の代わりに' sapply'を使うと長さ1より大きい値を扱えることが分かりました。 – arebearit

+0

また、 'FUN.VALUE'を必要に応じて調整することができます。 – Rentrop

+0

Oh 、私はそれが何のためだったかを完全に理解していませんでした!再度、感謝します。 – arebearit

関連する問題