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

如何将日期字符串转换为POSIXct格式并生成时间戳数值?

解决日期字符串转Unix时间戳问题

你的代码出现NA的原因有两个:

  1. 错误地将列名用引号包裹成字符串'created_at',导致R尝试把字符串"created_at"转成数值,而非处理数据框里的列内容
  2. 日期字符串无法直接转成数值,必须先解析为POSIXct类型的日期时间对象,再转换为Unix时间戳(秒为单位的数值)

正确的处理代码(dplyr版本)

tweets <- tweets %>% 
  mutate(created_at_dt = as.numeric(
    as.POSIXct(created_at, format = "%a %b %d %H:%M:%S %z %Y")
  ))

代码说明

  • as.POSIXct(created_at, format = "%a %b %d %H:%M:%S %z %Y"):按照你的日期字符串格式解析为POSIXct对象,各格式符含义:
    • %a:缩写星期名(如Fri)
    • %b:缩写月份名(如May)
    • %d:两位日期(如26)
    • %H:%M:%S:时分秒(如17:30:01)
    • %z:时区偏移(如+0000)
    • %Y:4位年份(如2017)
  • as.numeric():将POSIXct对象转换为Unix时间戳(从1970-01-01 00:00:00 UTC开始的秒数),正好匹配你需要的数值格式

验证示例

用你的第一个日期字符串测试:

as.numeric(as.POSIXct("Fri May 26 17:30:01 +0000 2017", format = "%a %b %d %H:%M:%S %z %Y"))
# 输出:1495819801

和你期望的结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:25:14