如何在R中使用if else和循环函数使以下语法更简单?



我有一系列if else语句,并希望通过添加循环函数使其更简单。我的代码如下所示:

n=length(Tabel_FLR$fuzzifikasi)
peramalan=array(NA,dim=c(n))
for(i in 1:n){
peramalan[i+1]=if(Tabel_FLR$fuzzifikasi[i]=="A1"){print(yA1)}
else if(Tabel_FLR$fuzzifikasi[i]=="A2"){print(yA2)}
else if(Tabel_FLR$fuzzifikasi[i]=="A3"){print(yA3)}
else if(Tabel_FLR$fuzzifikasi[i]=="A4"){print(yA4)}
else if(Tabel_FLR$fuzzifikasi[i]=="A5"){print(yA5)}
else if(Tabel_FLR$fuzzifikasi[i]=="A6"){print(yA6)}
else if(Tabel_FLR$fuzzifikasi[i]=="A7"){print(yA7)}
else if(Tabel_FLR$fuzzifikasi[i]=="A8"){print(yA8)}
else if(Tabel_FLR$fuzzifikasi[i]=="A9"){print(yA9)}
else if(Tabel_FLR$fuzzifikasi[i]=="A10"){print(yA10)}
else if(Tabel_FLR$fuzzifikasi[i]=="A11"){print(yA11)}
else if(Tabel_FLR$fuzzifikasi[i]=="A12"){print(yA12)}
else if(Tabel_FLR$fuzzifikasi[i]=="A13"){print(yA13)}
else if(Tabel_FLR$fuzzifikasi[i]=="A14"){print(yA14)}
else if(Tabel_FLR$fuzzifikasi[i]=="A15"){print(yA15)}
else if(Tabel_FLR$fuzzifikasi[i]=="A16"){print(yA16)}
else if(Tabel_FLR$fuzzifikasi[i]=="A17"){print(yA17)}
else if(Tabel_FLR$fuzzifikasi[i]=="A18"){print(yA18)}
else if(Tabel_FLR$fuzzifikasi[i]=="A19"){print(yA19)}
else if(Tabel_FLR$fuzzifikasi[i]=="A20"){print(yA20)}
else if(Tabel_FLR$fuzzifikasi[i]=="A21"){print(yA21)}
else if(Tabel_FLR$fuzzifikasi[i]=="A22"){print(yA22)}
else if(Tabel_FLR$fuzzifikasi[i]=="A23"){print(yA23)}
}

任何建议将是伟大的,谢谢!

您可以考虑以下方法:

yA1 <- 3
yA2 <- 5
yA3 <- 9
vec_Val <- c("A1", "A2", "A3")
nb_Val <- length(vec_Val)
for(i in 1 : nb_Val)
{
eval(parse(text = paste0("print(y", vec_Val[i], ")")))
}
[1] 3
[1] 5
[1] 9

相关内容

  • 没有找到相关文章

最新更新