我有一个包含多个级别的列表,我希望将数据级别转换为数据帧,其中变量 chr 折叠为单个字符串。
myList <- list(total_reach = list(4),
data = list(list(reach = 2,
chr = list("A", "B", "C"),
nr = 3,
company = "Company A"),
list(reach = 2,
chr = list("A", "B", "C"),
nr = 3,
company = "Company B")))
我想将其转换为如下所示的数据框:
reach chr nr company
1 2 A, B, C 3 Company A
2 2 A, B, C 3 Company B
使用 dplyr 和 data.table 我已经走到了这一步。
library(data.table)
library(dplyr)
df <- data.frame(rbindlist(myList[2])) %>% t() %>% as.data.frame()
colnames(df) <- names(myList$data[[1]])
rownames(df) <- c(1:nrow(df))
df$chr <- as.character(df$chr)
df <- df %>%
mutate_all(funs(unlist(.recursive = F, use.names = F)))
但是,chr 列包含带有“list()”的字符串。
reach chr nr company
1 2 list("A", "B", "C") 3 Company A
2 2 list("A", "B", "C") 3 Company B
A)是否有更好的方法来取消此类列表并将其转换为数据框?
B) 如何将 chr 中的列表折叠为字符串或因子?