У меня есть сценарий R, который использует CSV-файл, поскольку это исходные данные, чтобы создать шестнадцать отдельных ящиков. Каждый из шестнадцати ящиков имеет различные шкалы оси Y, что затрудняет применение к сценарию общего илимского статута. Я попытался использовать функцию coor_cartesian с оператором ylim, а также функцию scale_y_continuous, но опять же, это было слишком общее для применения на шестнадцати ящиках с различными шкалами оси Y (я не хочу нормализовать шкалы на шестнадцати ящиках, только участки с «экстремальными» выбросами).Как удалить экстремальные выбросы в R?
Ниже приведена информация о снуте данных, которую я использовал для создания шестнадцати ячеек. 'SE_Data' - это исходный файл csv, о котором я говорил выше. Я должен также упомянуть, что шестнадцать коробок экспортируются как один файл PDF (я не знаю, нужен ли этот уровень детализации или нет).
# Enter csv input file:
SE_Data<-read.csv("SE_DATA.csv",header=T)
# Enter output file name:
pdf(file="SE_Box_Plots.pdf", onefile=TRUE)
x=c("A","B","C","D","E","F","G","H")
SE_Data$ACO_Desc <- factor(SE_Data$ACO_Desc , x) #Ensures x-axis is ordered from A through H
#Creates sixteen individual boxplots
for (i in 5:ncol(SE_Data)) {
p<-ggplot(SE_Data, aes(x=Group_Desc, y=SE_Data[,i])) + geom_boxplot() +
ylab(gsub("\\_", " ", colnames(SE_Data)[i])) +
xlab("") +
theme(axis.text.x=element_text(angle = 0))
print(p)
}
dev.off()
dev.list()
Я не был уверен, что я должен был бы создать ELSE IF Постулаты, чтобы решить эту проблему, однако, как кто-то, кто все еще достаточно новое для R, это, кажется, намного выше моего уровня квалификации. Ниже я включил два из шестнадцати ящиков, чтобы проиллюстрировать, как их шкалы оси Y отличаются друг от друга.
Box Участок 1:
Box Участок 2:
Как вы можете видеть из двух присуща рефлективных, вербальных, они оба имеют очень разные масштабы по оси Y. По-моему, «boxplot 2» выглядит отлично, однако «boxplot 1» содержит экстремальные выбросы. Я бы разработал фрагмент кода, который мог бы удалить эти экстремальные значения, чтобы уменьшить количество «мертвого пространства» на коробке; таким образом, уменьшая масштаб оси y и делая его более привлекательным для глаза.
Важно подчеркнуть, что я все еще хочу, чтобы выбросы были включены в мои ящики, однако я хочу удалить только крайние выбросы. Если вам нужна дополнительная информация с моего конца, пожалуйста, сообщите мне об этом.
Заранее благодарю вас за помощь, благодарю вас.
Chris
это полезно, однако масштаб от функции scale_y_continuous применяется ко всем ящикам. Есть ли способ, которым я могу настроить шкалу на основе сюжета? В очередной раз благодарим за помощь. – YimYames
Хм, я не уверен. Вы можете попробовать огранку Group_Desc и использовать шкалы = 'free_y' –