私はこのエラーを受け取ります:
エラー:「else」に予期しない「else」
この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は最初の行を読み取り、それが完全であるため、その全体を実行します。次の行に到達すると、「Else?Else what?」になります。それは完全に新しい声明だからです。 Rに先行するifステートメントの一部としてelseを解釈させるには、終了していないことをRに伝える中括弧が必要です。
if(condition == TRUE) {x <- TRUE
} else {x <- FALSE}
構文について少し読むことをお勧めします。 こちらをご覧ください
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)