gpt4 book ai didi

r - 将不同列表的子列表组合成数据框列表

转载 作者:行者123 更新时间:2023-12-04 15:06:55 24 4
gpt4 key购买 nike

我有大量列表,每个列表都包含许多子列表。每个列表包含一个子列表,其中每个子列表将在不同列表中具有相同名称和数量的观察。

下面是一个简单的数据示例:

score <- list(Bob = list(c('1'), ('0')), Jane = list(c('1'), ('2'), ('4'), ('2')))
comments <- list(Bob = list(c('AAA'), ('BBB')), Jane = list(c('ZZZ'), ('XXX'), ('YYY'), ('QQQ')))

我希望创建一个数据框列表,将子列表组合在一起并保留名称。
my.list.Bob
score comments
1 AAA
0 BBB

my.list.Jane
score comments
1 ZZZ
2 XXX
4 YYY
2 QQQ

最佳答案

这是给你的一种方法。如果您的全局环境中有所有列表,则可以执行以下操作。首先,您创建一个包含所有列表的列表。然后,您使用 transpose()这允许您为每个人创建一个列表(例如,带有分数和评论的 Bob 列表)。在这种情况下,在每个列表中,您都将评论和评分作为嵌套列表。您想在每个列表中取消列出它们。因此,您可以使用 rapply2()通过原始。最后,为每个列表创建一个数据框。

library(magrittr)
library(purrr)
library(rawr) #devtools::install_github('raredd/rawr')

score <- list(Bob = list(c('1'), ('0')), Jane = list(c('1'), ('2'), ('4'), ('2')))
comments <- list(Bob = list(c('AAA'), ('BBB')), Jane = list(c('ZZZ'), ('XXX'), ('YYY'), ('QQQ')))

# Get all objects in the global environment and create a list.
mylist <- mget(ls(pattern = ".*"))

purrr::transpose(mylist) %>%
rapply2(unlist, classes = "list") %>%
lapply(as.data.frame, stringsAsFactors = FALSE)

$Bob
comments score
1 AAA 1
2 BBB 0

$Jane
comments score
1 ZZZ 1
2 XXX 2
3 YYY 4
4 QQQ 2

关于r - 将不同列表的子列表组合成数据框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684419/

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