我有这段代码
dtparts<-t(as.data.frame(strsplit(as.character(YOURDATA$datetime),' ')))
row.names(dtparts)=NULL
To make chron object
YOURDATA$dtime<-chron(dates=dtparts[,1], times=dtparts[,2])
但是当我在我的数据中使用时,不起作用,我不知道为什么? **
dtparts<-t(as.data.frame(strsplit(as.character(s1$datetime),' ')))
s1$dtime<-chron(dates=dtparts[,1], times=dtparts[,2])
Error in convert.dates(dates., format = format[[1]], origin. = origin.) : format m/d/y may be incorrect Además: Warning message: In convert.dates(dates., format = format[[1]], origin. = origin.) : NAs introducidos por coerción
我真的不知道发生了什么, 请有人帮助我
答案 0 :(得分:0)
解决方案可能是将as.character(s1$datetime)
更改为
第一行format(s1$datetime, "%m/%d/%Y %H:%M:%S")
。因此第一行将是
dtparts<-t(as.data.frame(strsplit(format(s1$datetime, "%m/%d/%Y %H:%M:%S"),' ')))
原因是date
部分的格式不匹配。 date
的默认chron
格式为"m/d/y"
,as.character
格式为Y-m-d
格式。因此,不匹配。我们有两种方法可以解决问题:
更改代表Date
部分的字符串格式,以匹配chron
的期望值。这已在上面解释过。
指定函数Date
中chron
部分的格式。这可以通过将2nd
代码行转换为:
s1$dtime<-chron(dates=dtparts[,1], times=dtparts[,2], format = c(dates = "y/m/d", times = "h:m:s"))