我正在尝试将一些数据读入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"
我没有看到问题。
答案 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 = ",")