我正在使用名为“使用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上我一直收到错误。
我尝试使用谷歌搜索此错误但找不到任何真正的解决方案或解释。
非常感谢任何见解或帮助。
答案 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>