Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将日期从Excel读入R_R_Excel_Csv_Datetime_Import - Fatal编程技术网

将日期从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))