将日期从Excel读入R
我有多个将日期从Excel读入R,r,excel,csv,datetime,import,R,Excel,Csv,Datetime,Import,我有多个csv文件需要读入R。文件的第一列包含日期和时间,当我加载数据帧时,我将其转换为POSIXlt。我的每个csv文件的日期和时间在Excel中的格式相同,但有些文件的读取方式不同 比如说, 导入后,我的文件如下所示: 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/
csv
文件需要读入R。文件的第一列包含日期和时间,当我加载数据帧时,我将其转换为POSIXlt
。我的每个csv
文件的日期和时间在Excel中的格式相同,但有些文件的读取方式不同
比如说,
导入后,我的文件如下所示:
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
列的格式?或者,有没有一种方法可以知道如何读取它,因为Excel中的列的格式在两者上是相同的。当为日期输入使用错误的格式字符串时,我似乎得到了NA
值。如果是这种情况,您可以分两步解决此问题。首先,从Excel中格式化日期,假设您有三个小时、分钟和秒:
date.original <- DATA$date
DATA$date <- as.POSIXlt(DATA$date,format="%Y/%m/%d %H:%M:%S")
这应该包括剩余的数据
数据
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))
数据这可能会有帮助:
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))