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

R语言字符型时间转换为timestamp时返回NA值如何处理

问题根源
  • 转换格式参数与实际字符串结构不匹配:你设置的格式%d-%m-%Y %H:%M:%S存在两处错误:一是用分隔符-匹配原字符串的空格分隔符,二是用匹配数字月份的%m匹配原字符串里的英文月份缩写Mar。
  • 若格式修正后仍返回NA,通常是系统区域设置(locale)为非英文,无法识别英文月份缩写导致。
解决步骤
  1. 首先使用正确的匹配格式:用空格匹配分隔符,用%b匹配英文月份缩写,对应格式串为"%d %b %Y %H:%M:%S"
    示例代码:
test = "27 Mar 2021 18:28:02"
# as.POSIXct 转换
as.POSIXct(test, format = "%d %b %Y %H:%M:%S")
# strptime 转换
strptime(test, "%d %b %Y %H:%M:%S")
  1. 若修正格式后仍返回NA,先临时修改当前R会话的时间区域设置为英文,再执行转换:
# Windows系统执行
Sys.setlocale("LC_TIME", "English")
# Linux/Mac系统执行
Sys.setlocale("LC_TIME", "en_US.UTF-8")

# 再执行转换即可正常返回结果
as.POSIXct(test, format = "%d %b %Y %H:%M:%S")

注:修改区域设置仅对当前R会话生效,不会改动系统全局配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:42:03