【发布时间】:2020-07-05 13:27:42
【问题描述】:
我无法通过搜索功能找到以下问题的答案:
为什么给定的ifelse() 条件不能按我的预期工作?
我得到了一个数据集,它错误地有一个日期的开放文本字段,因此我得到了人们填写日期的多种方式。到目前为止,我真的接近了一些可用的东西,但我打算下一步制作每个毫米2000 年之前的 /yy 条目通过 ifelse 函数输入的 mm/19yy 不会给我正确的结果:
Dates <- c("10/19", "04/2019", "O5/1992", "03/92")
ifelse(str_length(Dates)==5 & str_sub(Dates,4,5)>20, stri_sub(Dates, 4, 3) <- 19, Dates)
结果如下:
[1] "10/1919" "04/192019" "O5/191992" "19"
虽然我希望它看起来像这样:
1] "10/19" "04/2019" "O5/1992" "03/1992"
非常感谢任何帮助!
【问题讨论】:
-
错误是在
ifelse中赋值。这个stri_sub(Dates, 4, 3) <- 19不起作用。 -
尽管 Ronak Shah 提供了一个非常有帮助的答案,让我走到了终点,但还是感谢您的回答。
标签: r date if-statement