You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中创建从1991开始逐年递增的year变量求助

在R中创建从1991开始递增的year变量

嘿,这个需求其实很常见,我来给你分享几种简单高效的实现方法,适配不同的代码风格:

方法一:Base R 原生实现

假设你的数据集名为my_data,直接用seq()函数生成对应长度的年份序列即可:

# 给数据集添加year列,从1991开始,每个观测递增1
my_data$year <- seq(from = 1991, length.out = nrow(my_data), by = 1)

解释:nrow(my_data)会自动获取数据集的行数,seq()根据这个长度生成从1991起始、步长为1的序列,直接赋值给新的year列就搞定了。

方法二:Tidyverse/dplyr 风格实现

如果你平时习惯用tidyverse工具链,用mutate()结合行号生成会更流畅:

library(dplyr)

# 方式1:利用row_number()计算年份
my_data <- my_data %>%
  mutate(year = 1990 + row_number())

# 方式2:在管道里用seq()和n()
my_data <- my_data %>%
  mutate(year = seq(1991, length.out = n(), by = 1))

解释:row_number()会给每个观测分配一个从1开始的序号,加上1990就得到了从1991起始的年份;n()在dplyr管道中代表当前数据集的行数,用法和base R里的nrow()类似。

注意事项

  • 确保你的数据集行数和你需要的年份数量匹配:比如数据集有15行,生成的年份会是1991到2005,刚好一一对应。
  • 如果是时间序列对象(比如ts类型),可以直接利用其时间索引,但普通数据框用上面的方法就足够啦。

内容的提问来源于stack exchange,提问作者Simone Sartor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:45:49