首页 > 解决方案 > 如何在 R 中将年份映射到随后的几十年?

问题描述

我有一个从 1920 年到 2020 年的年份列表。我需要将它们转换为随后的几十年。我如何在 R 中毫不费力地做到这一点?我正在尝试编写嵌套的 if 语句,但它变得太长太乏味了。

我的数据样本:

data <-structure(list(Years = c(1945L, 1987L, 1980L, 1963L, 2006L, 1995L, 
1971L)), class = "data.frame", row.names = c(NA, -7L))

期望的输出:

样本

任何帮助都意义重大!

标签: rdatetimetidyversetidyrdata-cleaning

解决方案


data %>%
  mutate(Decade = if_else(Years >= 2000,
                          paste0(Years  %/% 10 * 10, "'s"),
                          paste0((Years - 1900) %/% 10 * 10, "'s")))

%/% 10 * 10钻头在这里完成了繁重的工作。%/%是“整数除法”运算符,它标识了十年的整数,然后我们乘以 10 回到年。

  Years Decade
1  1945   40's
2  1987   80's
3  1980   80's
4  1963   60's
5  2006 2000's
6  1995   90's
7  1971   70's

推荐阅读