当前位置:  开发笔记 > 编程语言 > 正文

"else"错误中出现意外的'else'

如何解决《"else"错误中出现意外的'else'》经验,为你挑选了2个好方法。

我收到此错误:

错误:"其他"中意外的"其他"

从这个if, else声明:

if (dsnt<0.05) {
     wilcox.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE) }
else {
      if (dst<0.05) {
wilcox.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE) }
   else {
         t.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE)       } }

这有什么问题?



1> sebastian-c..:

你需要重新排列大括号.您的第一个语句已完成,因此R将其解释为此类并在其他行上生成语法错误.您的代码应如下所示:

if (dsnt<0.05) {
  wilcox.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE)
} else if (dst<0.05) {
  wilcox.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE)
} else {
  t.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE)       
} 

更简单地说,如果你有:

if(condition == TRUE) x <- TRUE
else x <- FALSE

然后R读取第一行,因为它完整,完整地运行.当它到达下一行时,它会变成"Else?还有什么?" 因为这是一个全新的陈述.要让R将else解释为前面if语句的一部分,你必须使用大括号告诉R你还没有完成:

if(condition == TRUE) {x <- TRUE
 } else {x <- FALSE}



2> nadizan..:

我建议稍微阅读一下语法.看这里.

if (dsnt<0.05) {
  wilcox.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE) 
} else if (dst<0.05) {
    wilcox.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE)
} else 
  t.test(distance[result=='nt'],distance[result=='t'],alternative=c("two.sided"),paired=TRUE)

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有