gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:37:59 26 4
gpt4 key购买 nike

我有以下格式为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com