如何用map_df函数合并2004-2015赛季的英超数据框?
解决用map_df合并2004-2015英超赛季数据的问题
你之前的写法map_df(read_prem_league(2004:2015))存在问题——这行代码会先执行read_prem_league(2004:2015),相当于一次性把所有年份塞给函数,而不是让map_df逐个年份调用函数。正确的做法是把年份向量作为第一个参数传给map_df,再指定要调用的函数:
基础实现方式
写法1:直接传递向量和函数
library(purrr) all_prem_seasons <- map_df(2004:2015, read_prem_league)
写法2:使用公式语法
如果习惯用公式风格的写法(适合后续需要对每个年份做额外处理的场景),可以这样写:
all_prem_seasons <- map_df(2004:2015, ~ read_prem_league(.x))
进阶:保留赛季标识
如果需要在合并后的数据集里区分每个赛季的数据,可以新增一列记录赛季年份:
library(dplyr) library(purrr) all_prem_seasons <- map_df(2004:2015, ~ { read_prem_league(.x) %>% mutate(season = .x) # 添加赛季年份列 })
内容的提问来源于stack exchange,提问作者Anne Soled
相关产品推荐
相关产品推荐

