首页 文章

从Excel导入创建时间向量

提问于
浏览
0

我正在使用来自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 回答

  • 0

    如果您只想使用时间,请考虑使用 chron 包:

    library(chron)
    mytime <- times("21:19:37")
    

    或者在你的情况下

    times(new[,2])
    

    假设那是一个字符向量 .

  • 1

    我尝试了chron方法,但它不适合我:-( . 所以我最终做的只是创建一个时间向量,我正在加载数据的时间:

    date <-seq(as.POSIXct("2015/1/1 00:00"), as.POSIXct("2015/1/31 23:00"), "hours")
    

    然后将其添加回df . 不是我想要的,但它会工作,直到我找到最终的解决方案:-)

相关问题