R中的开关功能出错

时间:2015-04-07 02:41:40

标签: r switch-statement

              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

中的“开关”功能有任何错误

1 个答案:

答案 0 :(得分:0)

是。如果切换表达式是数字,则切换功能的运行方式不同。您的切换表达式是一个数字。

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

在任何一种情况下,您还需要用逗号分隔选项

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,否则切换函数将返回NULL