4
我试图将两种格式的日期转换为一个单一的日期,我可以很容易地将日期转换为as.Date
。这里有一个例子:处理日期正则表达式捕获组输出R
library(dplyr)
df <- data_frame(date = c("Mar 29 2017 9:30AM", "5/4/2016"))
我已经试过这样:
df %>%
mutate(date = gsub("([A-z]{3}) (\\d{2}) (\\d{4}).*",
paste0(which(month.abb == "\\1"),"/\\2","/\\3"), date))
但它给了我这样的:
date
1 /29/2017
2 5/4/2016
但我想这个!
date
1 3/29/2017
2 5/4/2016
它看起来像当我使用month.abb == "\\1"
,它不使用捕获组输出("Mar"
),它只是使用呼叫者文本("\\1"
)。如果可能的话,我想在正则表达式中这样做。我知道你可以用另一种方式来做,但想要变得光滑。
任何想法?
'as.Date'可以采取两种形式,即'as.Date(DF $ date,format = c('%b%d%Y%H:%M','%m /%d /%Y'))'(未测试) – Sotos
我想用正则表达式来做。谢谢您的好意。 – Zafar
作为解释:正则表达式查看paste0表达式的结果 - 它从不会看到进入粘贴表达式的值。 – epi99