2015-04-17 102 views
2

我有一个包含p x b个数据框的列表(res)。每个数据帧有12列但行数不同(例如,res[[1]][[1]]有12列和36行,但res[[1]][[1]]有12列和38行)​​。 我想将它们组合成一个有12列和179行的单个数据框。 do.call("rbind", listOfDataFrames)方法不起作用,因为我松散的列和行信息。让我知道,如果需要进一步的说明。 非常感谢!R:将列表列表组合到一个数据框中

+0

怎么样:'库(data.table); rbindlist(listOfDataFrames)' –

+0

它给了我下面的错误:'FUN中的错误(X [[1L]],...): 无效列:它具有维度。无法格式化它。如果是data.table(table())的结果,可以使用as.data.table(table())来替代.' – user2205323

+1

你可以发布'dput(listOfDataFrames)'的结果吗? –

回答

4

实际上它是一个包含5元素的列表。第一个元素是数据帧列表,而其他元素2,3,45NULL。所以你需要做的访问列表的第一个元素:

do.call(rbind, listOfDataFrames[[1]]) 

或者:

rbindlist(listOfDataFrames[[1]]) 
+0

非常感谢,也为解释! – user2205323

+1

有可能做'lst = Filter(function(u)!is.null(u),listOfDataFrames)' –

+0

再次感谢!这里只是一个更多的信息,对于那些会遇到一些不同问题的人来说也许很重要。如果你有一个像'results [[p]] [[b]]这样的层次结构列表,并且你想把它合并成一个单独的数据帧,那么解决方案是:'list < - unlist(results,recursive = FALSE) df < -rbindlist(list)'我刚刚添加了这个,也许对某个人有用...... – user2205323

相关问题