Je reçois cette erreur:
Erreur: 'else' inattendu dans "else"
De cette déclaration 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) } }
Quel est le probleme avec ca?
Vous devez réorganiser vos accolades. Votre première déclaration est terminée, donc R l'interprète comme telle et produit des erreurs de syntaxe sur les autres lignes. Votre code devrait ressembler à:
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)
}
Pour le dire plus simplement, si vous avez:
if(condition == TRUE) x <- TRUE
else x <- FALSE
Ensuite, R lit la première ligne et, comme elle est complète, l’exécute dans son intégralité. Quand il arrive à la ligne suivante, cela devient "Else? Else quoi?" parce que c'est une déclaration complètement nouvelle. Pour que R interprète l'option else dans la déclaration if précédente, vous devez placer des accolades pour indiquer à R que vous n'êtes pas encore fini:
if(condition == TRUE) {x <- TRUE
} else {x <- FALSE}
Je suggère de lire un peu sur la syntaxe. Voir ici.
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)