我无法为add_TA函数(quantmod包)设置当前子图。
curon = 2
add_TA(x, type = "l",col = "blue", lwd = 2, on=curon)
(在子图2上添加一行)
R给了我这个错误:
Error in plot_ta(x = current.chob(), ta = get("x"), on = curon, taType = NULL, :
object 'curon' not found.
命令:
add_TA(x, type = "l",col = "blue", lwd = 2, on=2)
虽然很好。
注意:问题仅在函数中使用时发生,而不是在全局范围内时发生。这是一个完整的例子:
library(quantmod)
test=function(){
x=xts(runif(10),Sys.Date()+1:10)
z=1/x
chart_Series(x)
add_TA(x, type = "l",col = "green", lwd = 2) #OK
add_TA(z, type = "l",col = "blue", lwd = 2, on=2) #OK
curon = 2;add_TA(z, type = "l",col = "red", lwd = 2, on=curon) #FAILS
}
test()
答案 0 :(得分:3)
我认为你必须在某个地方输入一个拼写错误,在代码中你没有显示,因为它对我有用:
library(quantmod)
x=xts(runif(10),Sys.Date()+1:10)
z=1/x
chart_Series(x)
add_TA(x, type = "l",col = "green", lwd = 2)
curon = 2
add_TA(z, type = "l",col = "blue", lwd = 2, on=curon)
(顺便说一句,这是人们所说的“完全可重复的最小例子”;你可以复制并粘贴到一个新的R会话中。除非你的问题很重要,否则数据可以是随机的。)
更新:在使用函数时重现了问题,我找到了一个解决方法(我认为是一个quantmod错误)。如果您将变量命名为on
而不是curon
,那么它可以正常工作:
library(quantmod)
test=function(){
x=xts(runif(10),Sys.Date()+1:10)
z=1/x
chart_Series(x)
add_TA(x, type = "l",col = "green", lwd = 2)
on=2;add_TA(z, type = "l",col = "blue", lwd = 2, on=on)
}