2016-04-04 92 views
0

我有一個變量out,它是一個列表列表,我想將第一個子列表格式化爲一個數據框。說我的out看起來像這樣:從R中的列表中創建數據框

[[1]] 
[[1]]$id 
[1] "1" 

[[1]]$input 
[1] "A" "B" "C" 

[[2]] 
[[2]]$id 
[1] "2" 

[[2]]$input 
[1] "R" "S" "T" 

class(out)class(out[[1]])證實,這是一個列表的列表。

我想創建一個「長」數據框看起來應該像這樣的:

id input 
1  "A" 
1  "B" 
1  "C" 
2  "R" 
2  "S" 
2  "T" 

我想:

lapply(out, function(x){ 
    as.data.frame(x) 
    }) 

但這似乎做一個cbind併爲每個孩子創造新的列名單。

任何幫助,高度讚賞。

+2

http://stackoverflow.com/questions/29674661/r-list-of-lists-to-data-frame – Berecht

+1

我想你需要'do.call(rbind,lapply( out,as.data.frame))' – akrun

回答

1

嘗試

library(plyr) 
ldply(out, as.data.frame) 
相關問題