値のベクトルがあります (数値のみ)。このベクトルを 2 つのベクトルに分割したいと思います。1 つのベクトルには元のベクトルの平均よりも小さい値が含まれ、もう 1 つのベクトルには元のベクトルの平均よりも大きい値が含まれます。テストRスクリプトとして次のものがあります。
v <- c(1,1,4,6,3,67,10,194,847)
#Initialize
v.in<- c(rep(0),length(v))
v.out<- c(rep(0),length(v))
for (i in 1:length(v))
{
if (v < 0.68 * mean(v))
{
v.in[i] <- v[i]
}
else
{
v.out[i] <- v[i]
}
}
v.in
v.out
## <https://gist.github.com/8a6747ea9b7421161c43>
次の結果が得られます。
9: In if (v < 0.68 * mean(v)) { :
the condition has length > 1 and only the first element will be used
> v.in
[1] 1 1 4 6 3 67 10 194 847
> v.out
[1] 0 9
> v
[1] 1 1 4 6 3 67 10 194 847
>
明らかに、0 と 9 は v のどの要素の値でもありません。
何が起こっているのか、これを修正する方法はありますか?
ありがとう、エド