as.POSIXct转换为错误的格式

时间:2018-04-16 16:08:45

标签: r posixct

有谁知道为什么POSIXct无法识别我的日期并正确转换它们?

> head(as.character(mCRC$inkldato))
[1] "25/09/14" "03/10/14" "08/10/14" "14/10/14" "10/12/14" "03/11/14"

out

 > head(as.POSIXct(as.character(mCRC$inkldato),format="%d/%m/%Y"))
 [1] "0014-09-25 LMT" "0014-10-03 LMT" "0014-10-08 LMT" "0014-10-14 LMT" "0014-12-10 LMT" "0014-11-03 LMT"

1 个答案:

答案 0 :(得分:2)

两位数的年份格式为%y%Y为4位数年份

as.POSIXct(v1,format="%d/%m/%y")
#[1] "2014-09-25 IST" "2014-10-03 IST" "2014-10-08 IST" 
#[4] "2014-10-14 IST" "2014-12-10 IST" "2014-11-03 IST"

这可以通过lubridate轻松完成,只要我们正确指定日 - 月 - 年的顺序,就没有4位数或2位数的问题

library(lubridate)
dmy(v1)

数据

v1 <- c("25/09/14", "03/10/14", "08/10/14", "14/10/14", "10/12/14", "03/11/14")