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

修复data.table中用lapply将yyymmdd数值型日期转为日期格式的问题

修复数值型日期转格式的data.table代码

原代码的问题

  1. 列名定义错误:date_cols <- c(Date1, Date2)取的是列的实际数值,不是列名字符串,导致data.table无法定位到要处理的目标列。
  2. 日期转换逻辑错误:直接用as.Date()处理数值型的yyymmdd格式,会被默认解析为自1970-01-01起的天数,完全不符合需求,必须先转为字符型并指定日期格式。

修复后的代码

# 正确指定要处理的列名(字符串形式)
date_cols <- c("Date1", "Date2")
# 批量转换:先把数值转字符,再按yyymmdd格式解析为日期
dt_1[, (date_cols) := lapply(.SD, function(x) as.Date(as.character(x), format = "%Y%m%d")), .SDcols = date_cols]

效果验证

执行后查看dt_1,Date1和Date2会变成标准的日期类型:

> dt_1
         Date1 Amount      Date2
1: 2021-01-03     10 2019-01-01
2: 2022-08-05     20 2018-02-20
3: 2019-12-31     30 2024-09-30

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:09:54