У меня есть набор данных, в котором участники были распределены по разным группам и прошли одинаковые тесты. Я знаю, что могу использовать агрегатную функцию для определения среднего значения и sd, но не могу понять, как найти выбросы в этих группах.
df<-read.table(header=T, text="id, group, test1, test2
1, 0, 57, 82
2, 0, 77, 80
3, 0, 67, 90
4, 0, 15, 70
5, 0, 58, 72
6, 1, 18, 44
7, 1, 44, 44
8, 1, 18, 46
9, 1, 20, 44
10, 1, 14, 38")
Мне нравится формат этого кода, но я не знаю, как его изменить, чтобы определить выбросы для каждой группы для каждого теста.
ТАКЖЕ, я хочу, чтобы выбросы считались чем-то большим, чем 2 стандартных отклонения, а не 3. Могу ли я отформатировать это тоже в этом коде?
##to get outliers on test1 if groups were combined
badexample <- boxplot(df$test1, plot=F)$out
which(df$test1 %in% badexample)
Это сработало бы, если бы я хотел, чтобы выбросы обеих групп были вместе на test1, но я хочу разделить по группам.
Вывод должен содержать:
Выбросы для группы 0 на test1
выбросы для группы 0 на test2
выбросы для группы 1 на test1
выбросы для группы 1 на тесте 2