r - 一次转换不同的日期时间格式(strptime)

标签 r datetime strptime

嗨:)我的 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)?

问候

最佳答案

您可以使用随时包。

library(anytime)
anytime::addFormats("%d.%m.%Y")
anydate(D$dates)

请注意,anydate 中的参数必须是向量,因此只需选择列dates

或者使用lubridate

parse_date_time(D$dates, c("mdy", "dmy")) 

关于r - 一次转换不同的日期时间格式(strptime),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46951572/

相关文章:

php - 如何将 PDT 时间格式转换为这种格式 `2016-09-13 08:56:55 +0000` - 使用 PHP?

r - 在R中调用strptime时的毫秒级困惑

python - 如何将字符串 ['2019-06-01T23:07:02.000+0000' ] 转换为 Python 3 中的日期时间对象

c - 带有时区偏移量的 c 中的 strptime

r - `NextMethod()` 的内部工作原理

r - rmarkdown 中的 ggplotly 错误

python - 在 Python 中为启用了真除法的日期时间模块计算 total_seconds

android - 如何合并数据时间

python - rpy2 + 负二项式 glm

r - 绝对面板与 r Shiny 仪表板侧边栏面板碰撞