【发布时间】:2015-10-15 08:04:03
【问题描述】:
mylist <- list(structure(c(1L, 1L, 2L, 2L, 2L, 2L, NA, NA), .Names = c("A",
"B", "C", "D", "E", "F", "G", "H")), structure(c(1L, 1L, 1L,
1L, 1L, 2L, 1L, NA), .Names = c("A", "B", "C", "D", "E", "F",
"G", "H")))
mylist
[[1]]
A B C D E F G H
1 1 2 2 2 2 NA NA
[[2]]
A B C D E F G H
1 1 1 1 1 2 1 NA
我有一个类似上面的列表,我想将它折叠到一个 data.frame 中,以便我可以单独对每一列进行子集化,即df$A、df$B 等。
> df$A
[1] 1 1
> df$B
[1] 1 1
> df$C
[1] 2 1
等等
【问题讨论】:
-
我想你想要
do.call(rbind, lapply(mylist, as.data.frame.list)) -
@RichardScriven 谢谢。这正是我想要的
-
实际上,有了这个,因为你已经得到了你可以做的所有数值
as.data.frame(do.call(rbind, mylist)) -
@RichScriven,我正在处理已经是数据框列表 (
list_of_dataframes) 的数据,并将您的代码修改如下:do.call(rbind, list_of_dataframes)。这有效,但创建了时髦的行名。为避免创建行名,我使用了此代码do.call(function(...) rbind(..., make.row.names = FALSE), list_of_dataframes)。对于我的简单测试用例,这有效(没有乱七八糟的行名),但我不确定这是否适合使用...。这是一个合理的方法吗?
标签: r