Поскольку вы не предоставляете никаких данных, я буду использовать набор данных mtcars.Вы, вероятно, хотите определить выброс как точку данных выше Q3 + IQR * 1.5.Кроме того, для циклов обычно избегают для основных операций R.
df <- mtcars[, c(2, 4)]
df$outliers <- ifelse(test = df$hp > quantile(df$hp, probs = 0.75) + IQR(df$hp) * 1.5, yes = "FLAG", no = NA)
df
> df
cyl hp outliers
Mazda RX4 6 110 <NA>
Mazda RX4 Wag 6 110 <NA>
Datsun 710 4 93 <NA>
Hornet 4 Drive 6 110 <NA>
Hornet Sportabout 8 175 <NA>
Valiant 6 105 <NA>
Duster 360 8 245 <NA>
Merc 240D 4 62 <NA>
Merc 230 4 95 <NA>
Merc 280 6 123 <NA>
Merc 280C 6 123 <NA>
Merc 450SE 8 180 <NA>
Merc 450SL 8 180 <NA>
Merc 450SLC 8 180 <NA>
Cadillac Fleetwood 8 205 <NA>
Lincoln Continental 8 215 <NA>
Chrysler Imperial 8 230 <NA>
Fiat 128 4 66 <NA>
Honda Civic 4 52 <NA>
Toyota Corolla 4 65 <NA>
Toyota Corona 4 97 <NA>
Dodge Challenger 8 150 <NA>
AMC Javelin 8 150 <NA>
Camaro Z28 8 245 <NA>
Pontiac Firebird 8 175 <NA>
Fiat X1-9 4 66 <NA>
Porsche 914-2 4 91 <NA>
Lotus Europa 4 113 <NA>
Ford Pantera L 8 264 <NA>
Ferrari Dino 6 175 <NA>
Maserati Bora 8 335 FLAG
Volvo 142E 4 109 <NA>
Maserati Bora с 8 цилиндрами и мощностью 335 лошадиных сил является единственным выбросом.График «коробка с усами» с указанием аномальной точки данных:
boxplot(df$hp, horizontal = TRUE)
# Vertical line indicating the outlier limit
abline(v = quantile(df$hp, probs = 0.75) + IQR(df$hp) * 1.5, col = "red") # 305.25