gpt4 book ai didi

r - 列出数据框中的未列出列

转载 作者:行者123 更新时间:2023-12-05 08:42:06 24 4
gpt4 key购买 nike

我有一个包含多个级别的列表,我想将数据级别转换为数据框,其中变量 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 中的列表折叠为字符串或因子?

最佳答案

这是一个使用 tidyverse 的选项

library(tidyverse)
myList[-1] %>%
map_df(transpose) %>%
mutate_at(vars(c('reach', 'nr', 'company')), funs(unlist))

关于r - 列出数据框中的未列出列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44884917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com