Je reçois cette erreur:
Erreur: inattendu “else” 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 génère des erreurs de syntaxe sur les autres lignes. Votre code devrait ressembler à ceci:
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, elle s'exécute dans son intégralité. Quand il arrive à la ligne suivante, il dit "Sinon? Sinon?" parce que c'est une déclaration complètement nouvelle. Pour que R interprète le rest comme faisant partie de l'instruction if précédente, vous devez avoir des accolades pour indiquer à R que vous n'êtes pas encore terminé:
if(condition == TRUE) {x <- TRUE } else {x <- FALSE}
Je suggère de lire un peu la syntaxe. Vois 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)