Это должно сделать то, что вы пытаетесь сделать:
exA2B <- function(x){
m=mean(x)
s=sd(x)
print(x)
x[ifelse(x<=m-2*s|x>=m+2*s, FALSE, TRUE )]
}
Ваша ошибка исходит от x = x [-i]. R не любит удалять из набора данных текущую итерацию, на которой вы находитесь.
Решение, которое я предоставляю, векторизует вашу проблему, поэтому оно работает быстрее и распечатывает старое и новое.