使用 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)