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

R语言中如何使用Sys.Date()提取上一年的年份?

R语言通过Sys.Date()提取上一年年份的实现方法

方法1:Base R 原生实现(无需安装额外依赖)

直接通过内置的日期格式化函数即可实现,适合不想引入第三方包的场景:

# 核心代码
as.integer(format(Sys.Date(), "%Y")) - 1

代码逻辑说明:

  • format(Sys.Date(), "%Y"):从日期对象中提取4位年份字符串,比如示例中的2021-08-09会返回"2021"
  • as.integer():将年份字符串转换为整数,再减1即可得到上一年的年份数值
    你也可以用as.POSIXlt的属性实现相同效果:
as.POSIXlt(Sys.Date())$year + 1900 - 1

方法2:使用lubridate包实现(语法更简洁)

如果你日常用lubridate包处理日期时间数据,写法更直观易读:

# 先加载lubridate包
library(lubridate)
# 核心代码
year(Sys.Date()) - 1

代码逻辑说明:year()函数会直接从日期对象中提取整数类型的年份,直接减1即可得到上一年的结果。

示例验证

我们用你提到的示例日期测试效果:

# 构造示例日期
test_date <- as.Date("2021-08-09")
# 运行base R方法
as.integer(format(test_date, "%Y")) - 1
# 输出:[1] 2020
# 运行lubridate方法
year(test_date) - 1
# 输出:[1] 2020

内容的提问来源于stack exchange,提问作者Natasha H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 06:09:03