Ответ 1
Вам нужно переставить фигурные скобки. Ваш первый оператор завершен, поэтому 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? Else what?" потому что это совершенно новое утверждение. Чтобы R интерпретировать else как часть предыдущего оператора if, у вас должны быть фигурные скобки, чтобы сообщить R, что вы еще не закончили:
if(condition == TRUE) {x <- TRUE
} else {x <- FALSE}