R简易日期解析

时间:2017-01-31 22:49:09

标签: r shiny

我有一个数据集,其中df$Date的格式为18-Sep-2016,因此不太有用。我怎样才能轻松转换这个,以便我可以在Shiny app的{​​{1}}中使用它?

2 个答案:

答案 0 :(得分:6)

anytime包的anydate()函数是为完全编写的:简单可靠的解析而没有格式而所有其他包都需要格式字符串,或预先选定的功能:

R> library(anytime)
R> anydate("18-Sep-2016")
[1] "2016-09-18"
R> class(anydate("18-Sep-2016"))
[1] "Date"
R> 

anydate甚至可以在格式更改时使用:

R> anydate(c("18-Sep-2016", "2016-09-18", "2016/09/18", "20160918", "09/18/2018"))
[1] "2016-09-18" "2016-09-18" "2016-09-18" "2016-09-18" "2018-09-18"
R> 

它还处理factor类型,但重点是POSIXct目前需要通过anydate(anytime(...))(但会在报告问题时修复a few days ago })

R> fv <- as.factor(c("18-Sep-2016", "2016-09-18", "2016/09/18", 
+                    "20160918", "09/18/2018"))
R> anydate(anytime(fv))
[1] "2016-09-18" "2016-09-18" "2016-09-18" "2016-09-18" "2018-09-18"
R> 

答案 1 :(得分:0)

您想要将文字字符串转换为&#39;日期&#39;宾语。这是使用lubridate包的一种方式。

library(lubridate) 
ans <- as.Date(parse_date_time('18-Sep-2016',orders = 'dmy'))
print(ans)
# [1] "2016-09-18"
class(ans)
# [1] "Date"