chart_Series 在条件为 FALSE 的函数中调用时不绘制
chart_Series does not plot when called in function with condition that evaluates to FALSE
我是 R 的初学者,所以我可能遗漏了一些关于函数的概念。但这是我的示例,我很感兴趣为什么它会这样工作?
require(quantmod);
myPlot = function(ts, addAdx = TRUE) {
chart_Series(ts);
if (addAdx) {
add_TA(ADX(HLC(ts))$ADX)
}
}
getSymbols("DIA", src='yahoo');
myPlot(DIA, addAdx = FALSE)
如果我将 addAdx 参数设置为 false,那么我的函数就不会绘制图表(否则就可以了)。这是为什么?
我不确定为什么会发生这种情况,但这是解决方法。在函数中放两次chart_Series
,当addAdx
为TRUE和FALSE时
myPlot = function(ts, addAdx = TRUE) {
if (addAdx) {
chart_Series(ts)
add_TA(ADX(HLC(ts))$ADX)
} else {
chart_Series(ts)
}
}
getSymbols("DIA", src='yahoo');
myPlot(DIA, addAdx = FALSE)
myPlot(DIA, addAdx = TRUE)
如果您不使用 return R 函数 return 最新的计算值。
如果 addAdx 设置为 FALSE,则函数 return 无效。
此代码解决了您的问题:
myPlot = function(ts, addAdx = TRUE) {
p <- chart_Series(ts);
if (addAdx) {
p <- add_TA(ADX(HLC(ts))$ADX)
}
p #return(p)
}
我是 R 的初学者,所以我可能遗漏了一些关于函数的概念。但这是我的示例,我很感兴趣为什么它会这样工作?
require(quantmod);
myPlot = function(ts, addAdx = TRUE) {
chart_Series(ts);
if (addAdx) {
add_TA(ADX(HLC(ts))$ADX)
}
}
getSymbols("DIA", src='yahoo');
myPlot(DIA, addAdx = FALSE)
如果我将 addAdx 参数设置为 false,那么我的函数就不会绘制图表(否则就可以了)。这是为什么?
我不确定为什么会发生这种情况,但这是解决方法。在函数中放两次chart_Series
,当addAdx
为TRUE和FALSE时
myPlot = function(ts, addAdx = TRUE) {
if (addAdx) {
chart_Series(ts)
add_TA(ADX(HLC(ts))$ADX)
} else {
chart_Series(ts)
}
}
getSymbols("DIA", src='yahoo');
myPlot(DIA, addAdx = FALSE)
myPlot(DIA, addAdx = TRUE)
如果您不使用 return R 函数 return 最新的计算值。
如果 addAdx 设置为 FALSE,则函数 return 无效。
此代码解决了您的问题:
myPlot = function(ts, addAdx = TRUE) {
p <- chart_Series(ts);
if (addAdx) {
p <- add_TA(ADX(HLC(ts))$ADX)
}
p #return(p)
}