2017-06-16 6 views
0

特定のオブジェクトをインデックスで取り出すように構成するにはどうすればよいでしょうか?私はリストのリストを持っています。私は今リストの2番目、4番目、5番目の要素をすべて取得し、それらをデータフレームに入れたいと考えています。私は最も簡単な方法は次のようにエントリをlapply使用して簡単に取得することだろうと思った:Rからlapplyまでのオブジェクトのリストのフィルタリング

list <-lapply(ll, function(x) { x[[2]]; x[[4]]; x[[5]] } 

しかし、それはそうと、それは動作しません。

答えて

0

これは動作します:

ll <- list(as.list(1:10), 
      as.list(11:20), 
      as.list(21:30)) 

library(magrittr) 

output1 <- ll %>% sapply(function(x){c(x[[2]],x[[4]],x[[5]])}) %>% t %>% as.data.frame 
# or with base syntax: 
output2 <- as.data.frame(t(sapply(ll,function(x){c(x[[2]],x[[4]],x[[5]])}))) 
    # V1 V2 V3 
    # 1 2 4 5 
    # 2 12 14 15 
    # 3 22 24 25 

をあなたの関数は、あなたの場合には、 `` `X [[5]]で最後の操作の結果を返しています。これまでに行った2つの操作は失われます。

0

ないあなたはこのdata.frameが見えるように、しかし、あなたが

lapply(ll, `[`, c(2,4,5)) 

で2、4、および5つの要素を抽出することができますし、行にそれらを有効にしたい場合は、あなたが行うことができますしたいのかわから

do.call("rbind",lapply(ll, `[`, c(2,4,5))) 

あなたがそれらを列になりたいと思った場合、あなたは

data.frame(sapply(ll, `[`, c(2,4,5))) 
を行うことができます
関連する問題