【发布时间】:2013-07-26 05:50:05
【问题描述】:
这一定很简单,但我似乎找不到解决方案。我需要比较 2 个 xts 对象的 Close 值
我有 2 个xts 对象:
>low2
low2 daco.Close
2013-07-24 6.63
>low3
low3 daco.Close
2013-07-24 2.63
但是当我尝试这样的事情时
if(low2$daco.Close < low3$daco.Close) {...}
我不断收到错误
Error in if (low2$daco.Close < low3$daco.Close) { :
argument is of length zero
即使当我尝试print(low2) 或print(low3) 时,我得到了正确的值。
任何有关如何解决此问题的提示将不胜感激。 谢谢!
编辑:
以下是low2 和low3 的输出
> dput(low2)
structure(6.63, .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", src = "xxx", updated = structure(1374782893.98805, class = c("POSIXct",
"POSIXt")), class = c("xts", "zoo"), index = structure(1374451200, tzone = "UTC", tclass = "Date"), .Dim = c(1L,
1L), .Dimnames = list(NULL, "daco.Close"))
> dput(low3)
structure(2.63, .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", src = "xxx", updated = structure(1374782893.98805, class = c("POSIXct",
"POSIXt")), class = c("xts", "zoo"), index = structure(1374624000, tzone = "UTC", tclass = "Date"), .Dim = c(1L,
1L), .Dimnames = list(NULL, "daco.Close"))
【问题讨论】:
-
那些看起来不像 xts 对象。请提供
dput(low2)和dput(low3)的输出 -
这是输出
structure(6.63, .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", src = "xxx", updated = structure(1374782893.98805, class = c("POSIXct", "POSIXt")), class = c("xts", "zoo"), index = structure(1374624000, tzone = "UTC", tclass = "Date"), .Dim = c(1L, 1L), .Dimnames = list(NULL, "daco.Close"))也可能有帮助,low2 = low2$daco.Close当我调用 low2 时,我得到了我在问题中发布的输出。谢谢! -
将其编辑到您的问题中,并提供
dput(low3)的输出。根据您提供的内容,我只能说它不可重现,因为if (low2$daco.Close < low2$daco.Close) TRUE没有给出您显示的错误。 -
您好,感谢您的宝贵时间。事实上,如果我将
low2与它本身进行比较,它会起作用,low3也会发生同样的情况。当我将它们相互比较时,它们就会出现问题。 -
谢谢。请注意,对象的日期与您最初显示的不同。这会有所不同。