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

如何在R语言中将某列的1970-01-01 00:00:00替换为NA?

解决方法

你的代码没成功,大概率是因为Committed列是POSIXct/POSIXlt日期时间类型,而非字符串类型,直接用字符串比较会不匹配。以下是两种可行的实现方式:

基础R方法

先将目标时间转换为对应日期时间类型,再进行替换:

# 定义目标时间(如果原列有时区,需指定对应tz参数,比如tz="UTC")
target_time <- as.POSIXct("1970-01-01 00:00:00")

# 替换匹配值为NA
ESM13$Committed[ESM13$Committed == target_time] <- NA

若不确定列的时区,可先查看原列的时区属性:

attr(ESM13$Committed, "tzone")

然后在as.POSIXct中指定相同的tz参数,确保时间匹配。

dplyr::mutate 方法

使用dplyr包的mutate结合if_else实现替换:

library(dplyr)

# 同样需注意时区匹配
target_time <- as.POSIXct("1970-01-01 00:00:00")

ESM13 <- ESM13 %>%
  mutate(Committed = if_else(Committed == target_time, NA, Committed))

如果Committed列是字符类型,建议先将其转换为日期时间类型再处理(方便后续日期操作):

ESM13$Committed <- as.POSIXct(ESM13$Committed)

之后再执行上述替换逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:15:29