“其他”错误中意外的“其他”

我得到这个错误:

错误:“其他”中意外的“其他”

从这个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) } } 

这有什么问题?

你需要重新排列大括号。 你的第一个陈述是完整的,所以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读取第一行,因为它是完整的,运行它的整体。 当它到达下一行时,它会变成“其他?否则呢?” 因为这是一个全新的说法。 要让R把else解释为前面的if语句的一部分,你必须用大括号来告诉R你还没有完成:

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

我会build议阅读一些语法。 看这里。

 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)