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

如何替换data.table指定行列值:用首行对应列前10字符填充

处理data.table指定行列的赋值问题

首先,你的原始data.table定义如下:

dt <- data.table(x = c("name",NA), y = c("2020-12-31T00:00:00.000+00:00",NA), z = c("2019-12-31T00:00:00.000+00:00",NA))

方法一:单独列赋值

直接定位第2行的y和z列,将第1行对应列值的前10个字符赋值过去:

# 替换第2行y列
dt[2, y := substr(dt[1, y], 1, 10)]
# 替换第2行z列
dt[2, z := substr(dt[1, z], 1, 10)]

方法二:批量处理多列

利用.SDcols指定要处理的列,通过lapply批量完成赋值,更高效:

dt[2, c("y", "z") := lapply(.SD, function(col) substr(dt[1, col], 1, 10)), .SDcols = c("y", "z")]

最终结果

执行上述代码后,你的data.table会更新为:

x          y          z
1:  name 2020-12-31 2019-12-31
2:     NA 2020-12-31 2019-12-31

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:45:56