Sum*_*way 2 if-statement r function
我运行了一个很长的脚本来决定我应该使用哪个模型来预测。在对数据的输入和输出样本进行准确性测试后,我创建了一个大型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
Run Code Online (Sandbox Code Playgroud)
但我不断收到错误
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
Run Code Online (Sandbox Code Playgroud)
这发生在我尝试过的许多不同的事情上,例如,而不是modelf<-""我尝试过View("",title=""),modelf<-View("",title="")但它仍然说它不合逻辑......我写的方式有错误还是有其他问题?
如果需要,可提供额外的细节和代码
你真的需要这个switch功能。
modelf <- switch(
maxmod,
ARIMA = ArimaALTfa,
Arima.wgt = ArimaALTfb,
AddHW = HWAbfc,
MultHW = HWMbfd,
AddHWwgt = HWAALTfe,
HWMALTff
)
Run Code Online (Sandbox Code Playgroud)
您的具体问题是试图将值分配给maxmod而不是比较是否相等。尽管该switch语句更可取,但请尝试替换
if(maxmod<-"ARIMA")
Run Code Online (Sandbox Code Playgroud)
和
if(maxmod == "ARIMA")
Run Code Online (Sandbox Code Playgroud)
maxmod == "ARIMA"返回TRUE或FALSE(一个逻辑值)。
maxmod<-"ARIMA"将值分配给"ARIMA"名为的变量maxmod(并无形地返回该字符串)。