【发布时间】:2020-11-03 00:19:09
【问题描述】:
问题
我有一个包含嵌套列表集的列表。我需要测试最低级别的所有数据帧是否相等,并且在执行此测试时需要尊重数据的分组。
我正在尝试使用 purrr::map() 解决问题,但我很难理解如何迭代每个子列表。
我在这个例子中使用了gapminder,只是因为它可以嵌套两次,这与我的实际数据相同(我不能在这里分享)。
数据
library(dplyr)
library(gapminder)
library(purrr)
tf <- gapminder %>%
select(continent, country, year) %>%
group_by(continent, year) %>%
nest() %>%
arrange(desc(year)) %>%
ungroup() %>%
group_by(year) %>%
nest()
我的尝试
tf$data[[1]] 包含每个大陆的数据列表。我需要检查这些列表是否相等。此数据集在此级别生成不相等的列表,但这没关系,我只需要我的实际数据的模式。
我的尝试只允许我遍历底层的一个列表。
map_chr(tf$data[[1]]$data, all_equal, current = tf$data[[1]]$data[[1]])
我需要对底层的所有列表执行此操作:对于 tf 中的每一年、tf$data 中的每个列表、tf$data[[1]] 中的每个大陆、tf$data[[1]]$data 中的每个列表,比较是否第一个列表tf$data[[1]]$data[[1]] 等于该级别的其他列表。
【问题讨论】: