将列表对象列表转换为R

时间:2018-06-09 19:08:15

标签: r list dataframe

我有一份清单,如下所示。我希望将其转换为所需格式的数据帧。

myList中:

[[1]]
NULL

[[2]]
[[2]]$`file`
[1] "ABC"

[[2]]$New
[1] 21

[[2]]$Old
[1] 42


[[3]]
[[3]]$`file`
[1] "CDF"

[[3]]$NEW
[1] 206

[[3]]$Old
[1] 84

我想将此列表对象列表转换为所需格式的数据帧:

file   New   Old
ABC    21     42
CDF    206    84

提前致谢!

3 个答案:

答案 0 :(得分:4)

我们可以在转换为map_df

后使用tibble
library(tidyverse)
myList %>% 
   map_df(as_tibble)
# A tibble: 2 x 3
#  file    New   Old
#  <chr> <dbl> <dbl>
#1 ABC      21    42
#2 CDF     206    84

bind_rows

bind_rows(myList)
# A tibble: 2 x 3
#  file    New   Old
#  <chr> <dbl> <dbl>
#1 ABC      21    42
#2 CDF     206    84

数据

myList <- list(NULL, list(file = 'ABC', New = 21, Old = 42), 
                      list(file = 'CDF', New = 206, Old = 84))

答案 1 :(得分:2)

看起来以下情况可行。

do.call(rbind, lapply(list, as.data.frame))

其中list是您的列表。

答案 2 :(得分:2)

类似(ls是您的列表):

df <- data.frame(matrix(unlist(ls), ncol = max(lengths(ls)), byrow = TRUE))

如果列名很重要,那么

names(df) <- names(ls[[which(lengths(ls)>0)[1]]])