gpt4 book ai didi

r - xts 错误 - 请帮助解释行为

转载 作者:行者123 更新时间:2023-12-04 05:24:34 26 4
gpt4 key购买 nike

我的 R 版本是 2.15.1 我正在关注 Luis Torgo 关于“预测股票市场返回”的案例研究。当我尝试从 csv 文件或从网络导入数据集时,两种方法都失败了

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

我继续使用可用的 .RData 文件。但是,当我尝试运行 T.ind 函数时遇到了同样的错误
> T.ind <- function(quotes, tgt.margin = 0.025, n.days = 10) {
+ v <- apply(HLC(quotes), 1, mean)
+ r <- matrix(NA, ncol = n.days, nrow = NROW(quotes))
+ for (x in 1:n.days) r[, x] <- Next(Delt(v, k = x), x)
+ x <- apply(r, 1, function(x) sum(x[x > tgt.margin | x <
+ -tgt.margin]))
+ if (is.xts(quotes))
+ xts(x, time(quotes))
+ else x
+ }

所以,我手动执行每个命令,逐行用相应的值替换参数
并将错误追溯到以下行:
 >xts(x,time(GSPC)) #'quote' replaced with 'GSPC'
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format

令人惊讶的是,经过多次试验和错误,我发现删除 2 行使其成为 工作! :
 > GSPC_new<-GSPC[-c(1073,1325),]
> x_new<-x[-c(1073,1325)]
> xts_obj<-xts(x_new,time(GSPC_new))

以前有人遇到过这种现象吗?这可能是什么解释?
感谢您花时间阅读并可能回答这个问题!

最佳答案

错误来自 as.POSIXlt.character这是字符数据被强制转换为 POSIXlt 时调用的方法对象(即 R 可以理解为日期时间而不仅仅是字符串的东西)。

这意味着您的日期时间数据向量没有以被识别为标准日期时间格式的格式记录:

else if (all(!is.na(strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", 
tz = tz))) || all(!is.na(strptime(xx, f <- "%Y/%m/%d %H:%M:%OS",
tz = tz))) || all(!is.na(strptime(xx, f <- "%Y-%m-%d %H:%M",
tz = tz))) || all(!is.na(strptime(xx, f <- "%Y/%m/%d %H:%M",
tz = tz))) || all(!is.na(strptime(xx, f <- "%Y-%m-%d",
tz = tz))) || all(!is.na(strptime(xx, f <- "%Y/%m/%d",
tz = tz)))) {

但是,唯一适用的测试是检查 NA和IIRC还有其他方式 NA s 可以在 POSIXlt 中出现数据。最有可能的罪魁祸首是在您或您的计算机正在运行的时区中不存在的日期时间。想想夏令时等或从未存在过的日历和时间系统的各种变幻莫测的日期。

您已经确定了错误或导致问题的行。去看看那些数据是什么样的。它们的格式是否正确?如果是,日期/时间对您的时区有意义吗?您可能需要自己检查一下您的计算认为它正在运行的地方。

关于r - xts 错误 - 请帮助解释行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com