使用条件格式化日期

时间:2018-11-19 13:11:14

标签: r loops date

我正在使用“ R”格式化具有两种不同日期格式(MM-DD-YYYY和YYYY-MM-DD)的字符变量。第二个是Excel的原始日期。

DateVar <- c("12-07-2017", "43229", "43137", "03-27-2018")

我使用grepl创建矢量来识别这两种类型,然后使用for循环将as.date函数仅应用于“ excel原始日期”。

indicator <- !grepl("-", DateVar)

for(i in indicator == TRUE){
as.date(DateVar, origin = "1899-12-30") 

但是,它对我不起作用,因此我正在寻找是否有人可以将我指向正确的方向。

谢谢。

1 个答案:

答案 0 :(得分:1)

事物的耦合:kamctl ul show 循环是不必要的-仅包含for的子集DateVar。其次,它是[indicator],而不是as.Date(请注意“ D”)。第三,由于它是一个字符向量,因此您需要将原始数字通过as.date作为as.Date才能使用它们:

as.integer

(或者,在没有干预指标分配的情况下:

as.Date(as.integer(DateVar[indicator]), origin = "1899-12-30")

如果您希望将这些日期输入回DateVar,请再次使用子集功能:

as.Date(as.integer(DateVar[!grepl("-",DateVar)]), origin = "1899-12-30")

[1] "2018-05-09" "2018-02-06"
相关问题