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
中的“开关”功能有任何错误答案 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