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

R语言如何将Unix双精度时间戳转换为日期并提取年份

R实现Unix时间戳转日期+提取年份方案

你当前代码存在两个小问题:

  • 管道操作后的head(as.POSIXct(...))语句没有纳入dplyr的处理流程,转换结果没有保存到数据框中,后续无法直接调用
  • 多做了无必要的类型转换:只要created_t是数值类型,不需要先转integer、再转character再转numeric,可以直接传入时间转换函数

你提到的操作参考截图如下:
操作截图

基于dplyr管道的正确实现

直接在mutate中一步完成时间转换、年份提取,结果会直接存到数据框新列里,后续可以直接调用:

library(dplyr)

food <- food %>%
  mutate(
    # 转换为标准日期格式,注意:如果是毫秒级时间戳请把created_t替换为created_t/1000
    standard_date = as.POSIXct(created_t, origin = "1970-01-01", tz = "GMT"),
    # 提取年份,二选一即可
    year_char = format(standard_date, "%Y"), # 输出字符型年份,如"2024"
    year_num = lubridate::year(standard_date) # 需要先安装lubridate包,输出整数型年份,如2024,适合统计计算
  )

如果只是想临时查看前6条转换结果,不需要写入数据框,可以直接运行:

head(as.POSIXct(food$created_t, origin="1970-01-01", tz="GMT"))

注意:如果转换后得到的日期明显不符合预期(比如出现几十年后、或者几百年前的日期),先确认时间戳是秒级还是毫秒级:Unix时间戳如果是13位数字就是毫秒级,必须除以1000之后再传入as.POSIXct才能得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:27:29