R将数据从列表移动到数据帧

R将数据从列表移动到数据帧,r,R,我有一个列表,其中包含0-3个id号,如下所示: [[1]] [1] 2125233 <NA> <NA> [[2]] [1] 2009281 2380145 2931851 [[3]] [1] 1517163 2836702 2506119 id contents 1 2125233 <NA> <NA> 2 2009281 2380

我有一个
列表
,其中包含0-3个id号,如下所示:

[[1]]
[1] 2125233 <NA>    <NA>

[[2]]
[1] 2009281 2380145 2931851

[[3]]
[1] 1517163 2836702 2506119
  id                   contents
   1             2125233 <NA>    <NA>
   2             2009281 2380145 2931851
   3             1517163 2836702 2506119
  ...                 .....
我试过查看
未列出的
,但它只是将所有内容都放到一个长向量中

有什么建议吗?

代码>库(plyr)
library(plyr)
ldply(list_name)

> x <- c(1,2,3)
> foo <- list(x,x,x)
> foo
[[1]]
[1] 1 2 3

[[2]]
[1] 1 2 3

[[3]]
[1] 1 2 3

> ldply(foo)
  V1 V2 V3
1  1  2  3
2  1  2  3
3  1  2  3
ldply(列表名称) >x富富 [[1]] [1] 1 2 3 [[2]] [1] 1 2 3 [[3]] [1] 1 2 3 >ldply(foo) V1 V2 V3 1 1 2 3 2 1 2 3 3 1 2 3
列表
[[1]]
[1] 123纳纳
[[2]]
[1] 1223 4546 5656
[[3]]
[1] 4546 4646  464
>数据帧(do.call(rbind,List))
x1x2x3
1123NA
2 1223 4546 5656
3 4546 4646  464
do.call(rbind…方法可能是最常见或最直观的方法(比下面的方法更快),但如果您想使用
取消列表
,则距离不远

诀窍是将
matrix()
unlist
结合使用,将行数设置为列表的
长度

List <- list(c(123, NA, NA), c(1223, 4546,5656), c(4546,4646,464))
matrix(unlist(List), nrow = length(List), byrow = TRUE)
#      [,1] [,2] [,3]
# [1,]  123   NA   NA
# [2,] 1223 4546 5656
# [3,] 4546 4646  464

## Or, for a data.frame
data.frame(matrix(unlist(List), nrow = length(List), byrow = TRUE))

ListR
数据。帧实际上是列表,如果列表中的每个向量都是一列,这就很容易做到:

List <- list(c(123, NA, NA), c(1223, 4546,5656), c(4546,4646,464))
DF <- data.frame(List)

请开始使用
dput
向我们显示您正在使用的数据对象,好吗?谢谢。看看这个问题,并回答@mnel最有效的方法。这个问题是关于data.frame的列列表。这是关于data.frame的行列表;i、 例如,
rbindlist
(当它可以轻松地接受非
数据表时,
)。@MatthewDowle——非常正确。我的意思是指
List <- list(c(123, NA, NA), c(1223, 4546,5656), c(4546,4646,464))
DF <- data.frame(List)
DF <- data.frame(t(DF))