r - 如何用特定值替换日期中的所有日期值?

标签 r date

我有以下格式为 m/d/y 的日期向量:

(dates<-c("1/31/2018", "2/31/2018", "3/0/2018", "4/31/2018", "9/5/2018"))
[1] "1/31/2018" "2/31/2018" "3/0/2018" "1/5/2018"

如果你仔细看,其中一些日期是荒谬的 - 例如二月没有 31 天,0 不是该月的有效日期。我想用“1”替换所有日期值。我希望我的结果如下所示:

dates
[1] "1/1/2018" "2/1/2018" "3/1/2018" "4/1/2018" "9/1/2018"

最佳答案

要转换坏的,只需首先尝试转换为 Date 类,如果这给出 NA,则替换中间部分。

ifelse(is.na(as.Date(dates, "%m/%d/%Y")), sub("/.*/", "/1/", dates), dates)
## [1] "1/31/2018" "2/1/2018"  "3/1/2018"  "4/1/2018"  "9/5/2018" 

或全部转换:

sub("/.*/", "/1/", dates)
## [1] "1/1/2018" "2/1/2018" "3/1/2018" "4/1/2018" "9/1/2018"

这是将它们全部转换的第二种方法:

with(read.table(text = dates, sep = "/"), paste(V1, 1, V3, sep = "/"))
## [1] "1/1/2018" "2/1/2018" "3/1/2018" "4/1/2018" "9/1/2018"

关于r - 如何用特定值替换日期中的所有日期值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55269971/

相关文章:

date - 报告生成器3.0 : How to convert string representation of dates in mm/dd/yy format using CDate

javascript - Date() 从哪里获取它的值

python - 使用 json 将 django 日期时间传递给 golang 服务器

r - 将多个组合矩阵合并在一起

用 R 中的数字和字符值替换数字列的 NA

R计算每行出现的次数非常慢

php - 格式化数据库中的日期以在 Highcharts 中使用

r - 在 R 中如何将列的值应用于同一数据框中的多个列

tol 参数在 QR 分解中的作用

PHP:从日期字符串中搜索缺失的日期