运行quantmod绘图代码报错“Error in if (theme$lylab) { : argument is of length zero”求助
解决quantmod绘图时的"argument is of length zero"错误
我刚碰到过类似的问题,这个错误的根源在于你调用chartTheme()时没有指定具体的主题——新版本的quantmod里,空的chartTheme()不会初始化完整的主题参数,导致theme$lylab是一个长度为0的对象,触发了if判断的错误。
修复方案
你有两种简单的解决办法:
使用预定义主题:给
chartTheme()传入一个预定义的主题名称,比如"white"或者"black",这些主题会完整初始化所有必要的参数:library(quantmod) aapl <- getSymbols("aapl", auto.assign = FALSE) head(aapl) chart_Series(aapl, subset='2010::2010-04', theme = chartTheme("white"), TA="addvo();addbbands()")手动指定缺失的参数:如果一定要用默认主题框架,可以手动设置
lylab参数(它控制是否显示y轴标签):chart_Series(aapl, subset='2010::2010-04', theme = chartTheme(lylab = TRUE), TA="addvo();addbbands()")
为什么教材里的代码能运行?
大概率是教材使用的quantmod版本比较旧,旧版本的chartTheme()默认会自动初始化lylab这类参数,而新版本做了调整,需要显式指定主题或者补充必要参数。
内容的提问来源于stack exchange,提问作者장뇌삼
相关产品推荐
相关产品推荐

