我有一个数据框,可以有这样的值:
p<-c("2012-08-14 9:00", "2012-08-14 7:00:00")
我正在尝试转换为日期时间:
p<-as.POSIXct(p)
this converted everyting to to 2012-08-14 09:00:00
出于某种原因,它不再起作用了。如果你注意到了,我的数据有时会有几秒钟而有时却没有。 你如何强制这是日期时间格式?
我得到这样的错误:
Error in as.POSIXlt.character(p) :
character string is not in a standard unambiguous format
答案 0 :(得分:3)
您的矢量格式不一致,因此请先将其转换为POSIXlt
,因为as.POSIXlt.character
会检查多种格式。
p <- c("2012-08-14 9:00", "2012-08-14 7:00:00")
plt <- as.POSIXlt(p)
pct <- as.POSIXct(plt)
答案 1 :(得分:0)
p<-c("2012-08-14 9:00", "2012-08-14 7:00:00")
require(lubridate) #
NewDate <- c()
for (i in 1 : 2)
{
if (nchar(unlist(strsplit(p[i], ' '))[2]) == 4) {NewDate <- c(NewDate, as.character(ymd_hm(p[i])))}
if (nchar(unlist(strsplit(p[i], ' '))[2]) == 7) {NewDate <- c(NewDate, as.character(ymd_hms(p[i])))}
}
NewDate