У меня есть список из 11 фреймов данных, каждый из которых имеет структуру sames из 44 переменных. Одна из переменных - это отношение, и я пытаюсь обрезать записи, содержащие выбросы. Мне удалось найти верхнюю и нижнюю границы, используя следующий код.R: Использование списков для обрезки обрезков
Во-первых, я создал список квантилей для каждого кадра данных:
quartiles <- lapply(class203_in, function(x) {
quartiles <- quantile(x$mv_ratio, type=6)
})
Далее я разразившийся первый и третий квартиль:
q1 <- lapply(quartiles, function(x) {
q1 <- x[2]
})
# create list of third quartile
q3 <- lapply(quartiles, function(x) {
q3 <- x[4]
})
Тогда я вычислил МКР:
iqr <- lapply(class203_in, function(x) {
iqr <- IQR(x$mv_ratio, type=6)
})
И, наконец, поднялся с верхней и нижней границей:
lower <- mapply(function(x, y) x - (y * 1.5), q1, iqr)
upper <- mapply(function(x, y) (y * 1.5) + x, q3, iqr)
Результаты выглядят для каждого выглядеть следующим образом (верхняя граница имеет точно такую же структуру и имена для каждого объекта в списке):
> lower
$`Yr02.25%`
[1] 0.1885
$`Yr03.25%`
[1] 0.2245
$`Yr04.25%`
[1] 0.2005
$`Yr05.25%`
[1] 0.1795
$`Yr06.25%`
[1] 0.2315
$`Yr07.25%`
[1] 0.127
$`Yr08.25%`
[1] 0.06125
$`Yr09.25%`
[1] 0.0365
$`Yr10.25%`
[1] -0.29725
$`Yr11.25%`
[1] -0.2985
$`Yr12.25%`
[1] -0.1045
Я сейчас пытаюсь использовать эти два списка чтобы обрезать выбросы в моем основном списке кадров данных, где mv_ratio - это переменная, которую я пытаюсь обрезать. Я закрылся, но я не могу заставить его вытолкнуть точную копию фреймов данных, в список или иначе. Вот код, который мне ближе всего:
class203_out <- mapply(function(x, y, z) x <- x[which(x$mv_ratio > y &
x$mv_ratio < z),], class203_in, lower, upper)
класс203_in - это список фреймов данных. Когда я запускаю это, я получаю огромную матрицу.
Любая помощь или толчок в правильном направлении были бы весьма полезными.
Возможный дубликат [Ярлыки или оценка выбросов в R] (http://stackoverflow.com/questions/32870703/label-or-score-outliers-in-r) –
Ответ в вышеупомянутом возможном дублирующем вопросе должен решить ваша проблема ... вы должны иметь возможность легко изменить код ответа немного, если вам нужно немного настроенное решение. –