我正在使用来自csv文件的数据,这些数据看起来都一样,所以我希望能够提供一个可以轻松应用于所有这些文件的代码 . 然而,遗憾的是我在第一步失败了:-( .
csv文件将日期和时间保存在一列中,因此当我使用read.csv导入它时,该列将被读取为chr . 我怎样才能最轻松地将其转换为我可以用于绘图和分析的日期?
这是我尝试过的:
加载数据 - >将日期和时间保存为mydata $ Date.Time下的chr(例如1/1/15 0:00)
mydata<-read.csv(file.choose(), stringsAsFactors = FALSE,
strip.white = TRUE,
na.strings = c("NA",""), skip=16,
header=TRUE)
将Date.Time分为日期和时间:
new <- do.call( rbind , strsplit( as.character( mydata$Date.Time ) , " " ) )
将这两个添加回df mydata:
cbind( mydata , Date = new[,2] , Time = new[,1] )
通过as.Date将Date转换为日期格式:
mydata $ Date < - as.Date(new [,1],format =“”)
所以这对日期工作正常,但我坚持的时间,我试过这个:
mydata$Time <- format(as.POSIXct(new[,2], format="%H:%M"))
这给了我以下错误:
as.POSIXlt.character(x,tz,...)出错:字符串不是标准的明确格式
我想知道是否有更聪明的方法吗?阅读时间和日期似乎是我想要了解的重要任务之一 . 有没有一种方法可以直接识别csv的日期和时间?或者通过它自己生成时间向量通常更聪明,如果是这样我将如何做到这一点?
非常感谢你的帮助 . 桑德拉
2 回答
如果您只想使用时间,请考虑使用
chron
包:或者在你的情况下
假设那是一个字符向量 .
我尝试了chron方法,但它不适合我:-( . 所以我最终做的只是创建一个时间向量,我正在加载数据的时间:
然后将其添加回df . 不是我想要的,但它会工作,直到我找到最终的解决方案:-)