R:阅读动物园并转换为“as.POSIXct”时的格式不明确

时间:2016-07-07 13:05:01

标签: r csv format time-series zoo

我正在尝试将一些数据读入read.zoo数据,但总是会收到一些错误:

Error in as.POSIXlt.character(x, tz, ...) : 
  character string is not in a standard unambiguous format

代码是:

df_zoo <- read.zoo("mydata.csv",
                header = TRUE,
                sep = ";",
                index = 1:2,
                FUN = paste,
                FUN2 = as.POSIXct,
                format = "%d.%m.%Y %H:%M:%S",
                tz = "UTC",
                dec = ",")

日志的第一行是

DATE;TIME_UTC;#1;#2;#3
14.06.2016;12:15:11;TRUE;TRUE;43,2
14.06.2016;12:15:12;TRUE;TRUE;43,3
14.06.2016;12:15:13;TRUE;TRUE;43,3
...

我可以在CSV中更改日期,但它应该在R中可行,我不想为任何进一步的CSV更改它。还

as.POSIXct(paste("14.06.2016","12:15:11"), format = "%d.%m.%Y %H:%M:%S", tz = "UTC")

工作得很好:

[1] "2016-06-14 12:15:11 UTC"

我没有看到问题。

2 个答案:

答案 0 :(得分:1)

1) read.zoo会自动将多列索引粘贴在一起,这样就行了,根本不使用FUN=。请注意,zoo将数据表示为矩阵,因此在这种情况下,逻辑将被强制转换为数字。

library(zoo)
read.zoo("mydata.csv", check.names = FALSE,
  header = TRUE, sep = ";", comment = "", dec = ",",
  index = 1:2, format = "%d.%m.%Y %H:%M:%S", tz = "")

2) read.zoo也可以读取数据框,这样就行了,并利用了许多所需参数是read.csv2的默认参数这一事实:

d <- read.csv2("mydata.csv", check.names = FALSE)
read.zoo(d, index = 1:2, format = "%d.%m.%Y %H:%M:%S", tz = "")

答案 1 :(得分:0)

您只需要1 FUN行来定义粘贴col1和col2的函数:

FUN = function(d,t) as.POSIXct(paste(d,t),format = "%d.%m.%Y %H:%M:%S",tz = "UTC”)

所以要将你的文件导入为zoo对象:

df_zoo <- read.zoo("mydata.csv",
                header = TRUE,
                sep = ";",
                index = 1:2,
                FUN = function(d,t) as.POSIXct(paste(d,t),format = "%d.%m.%Y %H:%M:%S",tz = "UTC"),
                dec = ",")