R:读取动物园并转换为 "as.POSIXct" 时格式明确

R: Unambiguous format when reading zoo and converting to with "as.POSIXct"

我正在尝试将一些数据读入 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"

我没有看到问题。

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

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

所以要将您的文件导入为动物园对象:

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 = ",")

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 也可以读取数据帧,所以这会起作用并且利用了这样一个事实,即许多需要的参数是 [=15 的默认参数=]:

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