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

字符型日期转日期格式求助:R语言合并数据集时转换失败

问题分析与解决方案

你忽略的核心问题是没有匹配crimes$Date的实际格式,以及部分函数的参数使用错误,导致日期转换失败。

你的代码错误点拆解

  1. 格式字符串匹配错误:
    • 用format='%I:%M %p'只匹配了时分和AM/PM,完全未包含日期部分,无法解析完整日期。
    • 用"%Y-%m-%d %I:%M:%S %p"时,格式中的%Y-%m-%d是「年-月-日」结构,但crimes$Date实际是「日/月/年」(或「月/日/年」)的结构,格式不匹配导致解析为NA。
  2. parse_date_time参数误用:
    该函数第一个参数必须是要转换的日期字符串向量,而非格式;同时必须指定orders参数定义日期各部分的顺序。
  3. 无格式调用as.POSIXct:
    R无法自动识别01/01/2022 12:00:00 AM这类非标准格式,必须明确给出匹配的格式字符串。

正确的转换步骤

处理crimes$Date(格式为DD/MM/YYYY HH:MM:SS AM/PM)

根据实际日期顺序选择对应格式:

# 若为日/月/年格式(例:01/01/2022代表2022年1月1日)
crimes$Date <- as.Date(crimes$Date, format = "%d/%m/%Y %I:%M:%S %p")

# 若为月/日/年格式(例:02/03/2022代表2022年2月3日)
crimes$Date <- as.Date(crimes$Date, format = "%m/%d/%Y %I:%M:%S %p")

上述代码会直接将字符型日期转换为仅保留年月日的Date类型,自动丢弃时分秒信息。

处理第一个数据框的Date列(格式为YYYY-MM-DD HH:MM:SS)

该格式属于R可识别的标准格式,直接转换即可:

df1$Date <- as.Date(df1$Date)

验证与合并

转换完成后,两个数据框的Date列均为Date类型,格式统一为YYYY-MM-DD,此时可正常合并数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:51:21