从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))