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