我运行了一个很长的脚本来决定我应该使用哪种模型进行预测。在对数据的输入和输出样本进行准确性测试后,我创建了一个大的if
函数来查找哪个模型最好,结果可能是" ARIMA"," Arima .wgt"," AddHW"," MultHW"," AddHWwgt"和" MultHWwgt"。在脚本中我得到了每个模型的预测,我想使用if
函数来查看当前我写的
if(maxmod<-"ARIMA")
modelf<-ArimaALTfa else
if(maxmod<-"Arima.wgt")
modelf<-ArimaALTfb else
if(maxmod<-"AddHW")
modelf<-HWAbfc else
if(maxmod<-"MultHW")
modelf<-HWMbfd else
if(maxmod<-"AddHWwgt")
modelf<-HWAALTfe else
modelf<-HWMALTff
但我一直收到错误
Error in if (maxmod <- "ARIMA") modelf <- ArimaALTfa else if (maxmod <- "Arima.wgt") modelf <- ArimaALTfb else if (maxmod <- "AddHW") modelf <- HWAbfc else if (maxmod <- "MultHW") modelf <- HWMbfd else if (maxmod <- "AddHWwgt") modelf <- HWAALTfe else modelf <- HWMALTff :
argument is not interpretable as logical
我已经尝试了许多不同的事情,而不是modelf<-""
我试过View("",title="")
和modelf<-View("",title="")
,但它仍然说它不符合逻辑......是吗?我写的方式有错误还是有其他问题?
如果需要,可提供额外的详细信息和代码
答案 0 :(得分:4)
你真的需要switch
功能。
modelf <- switch(
maxmod,
ARIMA = ArimaALTfa,
Arima.wgt = ArimaALTfb,
AddHW = HWAbfc,
MultHW = HWMbfd,
AddHWwgt = HWAALTfe,
HWMALTff
)
您的具体问题是尝试将值分配给maxmod
,而不是比较相等。虽然switch
语句更可取,但请尝试替换
if(maxmod<-"ARIMA")
与
if(maxmod == "ARIMA")
maxmod == "ARIMA"
返回TRUE
或FALSE
(逻辑值)。
maxmod<-"ARIMA"
将值"ARIMA"
赋给名为maxmod
的变量(并且无形地返回该字符串)。