Я новичок ie в R, и у меня возникла проблема с удалением некоторых выбросов. У меня есть фрейм данных, который выглядит примерно так:
Item1 Item2 Item3
4.05 3.9 3.6
12 3.7 4
4.01 3.8 4
Мой желаемый результат должен быть примерно таким, как таблица ниже, а именно таблица, в которой удалены выбросы каждого столбца
Item1 Item2 Item3
4.05 3.9 3.6
NA 3.7 4
4.01 3.8 4
До сих пор я написал код, который может обнаруживать выбросы, но я застрял в их удалении, так как весь столбец изменяется вместо одного значения.
find_outlier <- function(log_reaction_time) {
media <- mean(log_reaction_time)
devst <- sd(log_reaction_time)
result <-which(log_reaction_time < media - 2 * devst | log_reaction_time > media + 2 * devst)
log_reaction_time2 <- ifelse (log_reaction_time %in% result, NA, log_reaction_time)
}
apply(log_reaction_time, 2, find_outlier)
Я думаю, проблема связана с тем, что Я применяю функцию к столбцам (2), так как я хочу найти выбросы в столбце, но затем я хочу удалить только соответствующие значения ...