从Excel中读入date到R

我有多个csv文件,我需要读入R.文件的第一列包含date和时间,当我加载数据框时,我将其转换为POSIXlt 。 我的每个csv文件在Excel中都有相同的格式化date和时间,但是有些文件的读入方式不同。

例如,

我的文件看起来像这样一次导入:

  date value 1 2011/01/01 00:00:00 39 2 2011/01/01 00:15:00 35 3 2011/01/01 00:30:00 38 4 2011/01/01 00:45:00 39 5 2011/01/01 01:00:00 38 6 2011/01/01 01:15:00 38 

所以我用来修改格式的代码是:

 DATA$date <- as.POSIXlt(DATA$date,format="%Y/%m/%d %H:%M:%S") 

但是,一些文件正在被读入:

  date value 1 01/01/2011 00:00 39 2 01/01/2011 00:15 35 3 01/01/2011 00:30 38 4 01/01/2011 00:45 39 5 01/01/2011 01:00 38 6 01/01/2011 01:15 38 

这意味着我的代码格式部分不起作用,并给出错误。 因此,是否有自动检测date列的格式? 或者,有没有办法知道它将如何被读取,因为在Excel中的列的格式是相同的两个。

当你的dateinput使用错误的格式string,我似乎得到NA值。 如果是这样的话,你可以分两步解决这个问题。 首先,假定你有三个小时,分钟和秒,从Excel格式化date:

 date.original <- DATA$date DATA$date <- as.POSIXlt(DATA$date,format="%Y/%m/%d %H:%M:%S") 

这应该在那些缺less秒的date的date列中留下NA值。 那么你可以试试这个:

 DATA$date[is.na(DATA$date)] <- as.POSIXlt(date.original, format="%Y/%m/%d %H:%M") 

这应该覆盖剩下的数据。

数据

 DATA <- data.frame(date=c('2011/01/01 00:00:00', '2011/01/01 00:15', '2011/01/01 00:30:00', '2011/01/01 00:45'), value=c(39, 35, 38, 39))