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))