0
私は極端な値をデータセットの最も近い値に置き換えようとしています。私はifelse()がうまく動作することを知っていますが、なぜforループが動作しないのか不思議です。なぜ私のforループ関数が機能していないのですか(データセットの異常値を切り捨てようとしています)
truncate <- function(a){
m <- mean(a)
sd <- sd(a)
up <- m+3*sd
low <- m-3*sd
a1 <- c()
for (i in 1:length(a)){
if (a[i] > up) {
a1[i] = up
}
if (a[i] < low){
a1[i] = low
}
else {
a1[i] = a[i]
}
}
return (a1)
}
a <- c(1:100)