)我的data.frame中有一列包含两种格式的日期。下面是一个很小的例子:
D = data.frame(dates = c("3/31/2016", "01.12.2015"))
dates
1 3/31/2016
2 01.12.2015使用漂亮的函数strptime,我可以轻松地获得每种格式的日期时间:
D$date1 <- strptime(D$dates, format = "%m/%d/%Y")
D$date2 <- strptime(D$dates, format = "%d.%m.%Y")我已经找到了一个解决办法:
D$date12 <- do.call(pmin, c(D[c("date1","date2")], na.rm=TRUE) )为实现这一目标:
dates date1 date2 date12
1 3/31/2016 2016-03-31 <NA> 2016-03-31
2 01.12.2015 <NA> 2015-12-01 2015-12-01是否有更复杂的方法可以同时完成此转换(从日期到date12)?
问候
发布于 2017-10-26 10:23:47
您可以使用anytime包。
library(anytime)
anytime::addFormats("%d.%m.%Y")
anydate(D$dates)注意,anydate中的参数必须是向量,所以只需选择coloumn dates。
或者使用lubridate
parse_date_time(D$dates, c("mdy", "dmy")) https://stackoverflow.com/questions/46951572
复制相似问题