使用 purrr::map 遍历多个列表
Iterating over multiple lists using purrr::map
下面是我的数据
library(gapminder)
library(tidyverse)
lst <- unique(gapminder$continent)
ylst = c(2007, 1952)
map2_dfr(lst,ylst, ~gapminder %>% filter(continent == .x & year == .y) %>%
arrange(desc(gdpPercap))
%>% slice(1) %>% select(continent, country,gdpPercap,year))
数据是来自R库的gapminder数据'gapminder'。
我想使用 purrr 找出每个大陆每年 gdpPercap 最高的国家。
但是这段代码给我的错误是我的两个列表的长度不一样
当长度不同时,迭代两个列表的映射语法是什么?我应该如何使用它来修复代码并实现我的 objective?
我会通过分组和嵌套来做到这一点:
gapminder %>%
filter(year %in% ylst) %>%
group_by(continent, year) %>%
nest() %>%
mutate(data=map(data, ~top_n(., 1, gdpPercap))) %>%
unnest(c(data)) %>%
select(continent, country,gdpPercap,year)
下面是我的数据
library(gapminder)
library(tidyverse)
lst <- unique(gapminder$continent)
ylst = c(2007, 1952)
map2_dfr(lst,ylst, ~gapminder %>% filter(continent == .x & year == .y) %>%
arrange(desc(gdpPercap))
%>% slice(1) %>% select(continent, country,gdpPercap,year))
数据是来自R库的gapminder数据'gapminder'。
我想使用 purrr 找出每个大陆每年 gdpPercap 最高的国家。
但是这段代码给我的错误是我的两个列表的长度不一样 当长度不同时,迭代两个列表的映射语法是什么?我应该如何使用它来修复代码并实现我的 objective?
我会通过分组和嵌套来做到这一点:
gapminder %>%
filter(year %in% ylst) %>%
group_by(continent, year) %>%
nest() %>%
mutate(data=map(data, ~top_n(., 1, gdpPercap))) %>%
unnest(c(data)) %>%
select(continent, country,gdpPercap,year)