R中的开关功能错误

error in switch function in R

              to_select=cbind(te_matrix[i,j],te_matrix[j,k],te_matrix[i,k]);
          te_ac=apply(abs(to_select),2,sort);
          var_ac=apply(abs(to_select),2,order);
          if(te_ac[1]<te_ac[2]-0.005){
            switch(var_ac[1],
                    1= (del_arc<-rbind(del_arc,cbind(count-1,i,k)))
                    2= (del_arc<-rbind(del_arc,cbind(count-1,j,k)))
                    3= (del_arc<-rbind(del_arc,cbind(count-1,i,k))))
          }

当我运行这段代码时,它会抛出如下错误:

M:/学习/毕业设计/传递熵R语言/triplenode.R:27:26: unexpected '='
26:                 switch(var_ac[1],
27:                         1=
                             ^

R

中的函数"switch"是不是我搞错了

是的。如果切换表达式为数字,则切换函数的操作会有所不同。您的切换表达式是一个数字。

由于您的切换表达式是数字,因此您不需要 = 符号。

无论哪种情况,您还需要用逗号分隔选项

switch(var_ac[1],
         del_arc<-rbind(del_arc,cbind(count-1,i,k)),
         del_arc<-rbind(del_arc,cbind(count-1,j,k)),
         del_arc<-rbind(del_arc,cbind(count-1,i,k))
       )

您的 var_ac[1] 的值必须评估(或强制)为值 1,2 或 3,否则切换函数将 return NULL