R で for ループを使用すると問題が発生します。次のコード
a <- seq(-2, 5)
for(i in 1:length(a)){
a[i] <- if(a[i] <= 0) "aa" else a[i]
}
次のベクトルになるはずです
> a
[1] "aa" "aa" "aa" "1" "2" "3" "4" "5"
代わりに、次の結果が得られます。
> a
[1] "aa" "-1" "aa" "1" "2" "3" "4" "5"
R が "-1" を "aa" に置き換えられないのはなぜですか?
正常に機能する別のソリューションを試しました。
a <- seq(-2, 5)
b <- NULL
for(i in 1:length(a)){
b[i] <- if(a[i] <= 0) "aa" else a[i]
}
期待される結果が生成されます。
> b
[1] "aa" "aa" "aa" "1" "2" "3" "4" "5"
後者の例はうまく機能し、最初の例はうまくいかないのはなぜですか?
ご助力ありがとうございます!
よろしくお願いします!!