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

如何在R语言中将"January 2012"格式的字符向量转为日期向量

搞定日期转换返回NA的问题

你的核心问题很直接——日期格式字符串写反了!你的日期是「月份全称 年份」(比如"January 2012"),但你用的%Y %B是「年份 月份全称」的格式,完全不匹配,自然会返回NA。

正确转换代码示例

基础as.Date方法

把格式字符串改成和日期顺序一致的%B %Y即可:

as.Date(df$date, format = "%B %Y")

如果碰到时区警告,手动指定合法时区就能解决:

as.Date(df$date, format = "%B %Y", tz = "GMT")

用lubridate包更省心

先安装并加载lubridate包,既可以指定格式解析,也能用专用函数自动识别:

library(lubridate)
# 指定格式解析
as_date(df$date, format = "%B %Y")
# 用my()函数自动匹配「月份+年份」格式
my(df$date)

额外说明

  • %B对应英文月份全称(比如January),%Y对应4位年份,格式字符串的顺序必须和你的日期字符串完全对应,差一点都不行。
  • 时区警告是系统时区识别出了小问题,手动指定一个合法时区(比如"GMT"或者你当地的时区"Asia/Shanghai")就能消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:45:44