如何将时间序列数据中1月行的年份列回退至前一年?
实现方案
你可以直接用dplyr的条件赋值完成需求,无需拆分数据再合并,一步到位:
library(dplyr) # 调整1月份数据的年份归属 df_adjusted <- df %>% mutate(year = if_else(month == 1, year - 1, year))
代码说明
if_else(month == 1, year - 1, year):遍历每一行数据,当month为1时,将year值减1;其他月份保持原year值不变。这样就把当年1月的数据归到了前一年的统计范畴。
验证结果
可以通过以下代码确认调整是否正确:
# 查看原2001年1月数据调整后的年份 df_adjusted %>% filter(month == 1, year == 2000) %>% head() # 对比调整前后1月数据的行数是否一致 nrow(df %>% filter(month == 1)) == nrow(df_adjusted %>% filter(month == 1))
内容的提问来源于stack exchange,提问作者Mukhtar Abdi
相关产品推荐
相关产品推荐

