我有一个清单,如下所示。ANd我想把它转换成所需格式的数据帧。
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
我想将这个list对象列表转换为所需格式的dataframe:
file New Old
ABC 21 42
CDF 206 84
提前感谢!
发布于 2018-06-10 03:50:34
类似于(ls
是你的列表):
df <- data.frame(matrix(unlist(ls), ncol = max(lengths(ls)), byrow = TRUE))
如果列名很重要,那么
names(df) <- names(ls[[which(lengths(ls)>0)[1]]])
发布于 2018-06-10 03:33:37
我们可以在转换为tibble
之后使用map_df
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))
发布于 2018-06-10 03:16:57
看起来下面的方法是可行的。
do.call(rbind, lapply(list, as.data.frame))
其中list
是您的列表。
https://stackoverflow.com/questions/50777607
复制相似问题