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

从DataFrame日期时间列提取年份并筛选1993年至今数据

处理ISO格式日期并过滤1993年至今的数据

你的日期格式是标准ISO 8601格式,用lubridate包的解析工具能轻松搞定转换,结合dplyr就能完成过滤,具体操作如下:

1. 加载依赖包

先确保安装并加载所需工具包:

install.packages(c("dplyr", "lubridate"))
library(dplyr)
library(lubridate)

2. 单个DataFrame处理示例

假设你的DataFrame名为df,日期列是datetime_col:

df_filtered <- df %>%
  # 将字符串日期转为可操作的POSIXct日期时间类型
  mutate(datetime_col = ymd_hms(datetime_col)) %>%
  # 直接提取年份过滤1993年及以后的数据
  filter(year(datetime_col) >= 1993)

3. 批量处理多个DataFrame

如果有多个DataFrame(比如存放在列表df_list中),可以用lapply批量处理:

# 对列表里的每个DataFrame执行转换+过滤操作
df_list_filtered <- lapply(df_list, function(x) {
  x %>%
    mutate(datetime_col = ymd_hms(datetime_col)) %>%
    filter(year(datetime_col) >= 1993)
})

额外提示

  • 若遇到解析失败的异常日期,可添加静默参数或指定格式兜底:
    # 静默解析错误
    mutate(datetime_col = ymd_hms(datetime_col, quiet = TRUE))
    # 或指定格式强制解析
    mutate(datetime_col = parse_date_time(datetime_col, orders = "YmdHMS"))
    
  • 转换后的日期列可直接用于时间序列相关操作,无需单独提取年份存储,year()函数能直接在filter中调用。

内容的提问来源于stack exchange,提问作者Melissa Duda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:24:58