R中的错误信息找不到函数“get.current.chob”

时间:2014-08-04 14:25:11

标签: r function quantmod indicator

我正在使用名为“使用R进行数据挖掘”的教科书中的代码,并且在尝试自己运行示例代码时遇到了绊脚石。

以下是目前的代码:

library(quantmod)

getSymbols("^GSPC")

colnames(GSPC) <- c("Open", "High", "Low", "Close", "Volume", "AdjClose")

T.ind <- function(quotes, tgt.margin=.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

}

candleChart(last(GSPC, "1 year"), theme="white", TA=NULL)
avgPrice <- function(p) apply(HLC(p), 1, mean)
addAvgPrice <- newTA(FUN=avgPrice, col=1, legend="AvgPrice")
addT.ind <- newTA(FUN=T.ind, col="red", legend="tgtRet")
addAvgPrice(on=1)
addT.ind()

但是对于最后两行,我收到错误消息:

> addAvgPrice(on=1)
Error in addAvgPrice(on = 1) : could not find function "get.current.chob"
> addT.ind()
Error in addT.ind() : could not find function "get.current.chob"

另外奇怪的是我在1台机器上运行了代码。没有问题,但在我的主PC上我一直收到错误。

我尝试使用谷歌搜索此错误但找不到任何真正的解决方案或解释。

非常感谢任何见解或帮助。

1 个答案:

答案 0 :(得分:0)

> get.current.chob
Error: object 'get.current.chob' not found

get.current.chob在quantmod中,所以......

> quantmod:::get.current.chob
function () 
{
    first.chob <- which(sapply(sys.frames(), function(x) exists("chob", 
        envir = x)))[1]
    if (!is.na(first.chob)) {
        lchob <- get("chob", envir = first.chob)
    }
    else {
        gchob <- get.chob()
        if (dev.cur() == 1 || length(gchob) < dev.cur()) 
            stop("improperly set or missing graphics device")
        current.chob <- which(sapply(gchob, function(x) {
            ifelse(class(x) == "chob" && x@device == as.numeric(dev.cur()), 
                TRUE, FALSE)
        }))
        if (identical(current.chob, integer(0))) 
            stop("no current plot")
        lchob <- gchob[[current.chob]]
    }
    return(lchob)
}
<environment: namespace:quantmod>