【发布时间】:2020-08-20 04:04:31
【问题描述】:
我有一个包含不同格式日期的数据框。
想首先只在拥有它的年份删除19,然后使用as.POSIXlt 转换日期。
但是 gsub 没有启动
df.DOB <- c("12/11/99", "10/24/67", "8/18/13", "2/29/45", "2/28/63", "12/14/77",
"07/25/1923", "01/07/1989", "09/02/1974")
gsub("\\/19.*", "", df.DOB)
# [1] "12/11/99" "10/24/67" "8/18/13" "2/29/45" "2/28/63" "12/14/77" "07/25" "01/07" "09/02"
df.DOB.formatted <- as.POSIXlt(df.DOB, format = "%m/%d/%y")
df.DOB.formatted <- df.DOB.formatted - 100L
df.DOB.formatted
# [1] "1999-12-10 23:58:20 EST" "2067-10-23 23:58:20 EDT" "2013-08-17 23:58:20 EDT"
# [4] NA "2063-02-27 23:58:20 EST" "1977-12-13 23:58:20 EST"
# [7] "2019-07-24 23:58:20 EDT" "2019-01-06 23:58:20 EST" "2019-09-01 23:58:20 EDT"
非常感谢您的帮助
谢谢
【问题讨论】:
-
我们怎么知道
8/18/13应该被解释为08/18/1913而不是08/18/2013?您需要在此处澄清许多极端情况。 -
您的最终预期输出是什么?也许这里有更好的方法,根本不涉及
gsub步骤。 -
首先我期待 > gsub("\\/19.*","",df.DOB) [1] "12/11/99" "10/24/67" " 8/18/13" "2/29/45" "2/28/63" "12/14/77" "07/25/23" "01/07/89" [9] "09/02/74 "
标签: r regex dataframe date gsub