Если у вас есть кадр данных как
x <- c(-10, 1:6, 50)
x1 <- c(-20, 1:6, 60)
z <- c(1,2,3,4,5,6,7,8)
df <- data.frame(x = x, x1 = x1, z = z)
Вы можете сделать это, чтобы удалить строки с выбросами в x
или x1
is.outlier <- sapply(df[c('x', 'x1')], function(x) x %in% boxplot(x)$out)
df[!rowSums(is.outlier),]
# x x1 z
# 2 1 1 2
# 3 2 2 3
# 4 3 3 4
# 5 4 4 5
# 6 5 5 6
# 7 6 6 7
В tidyverse
(то же самоерезультат)
library(tidyverse)
df %>%
filter(map(list(x, x1), ~!.x %in% boxplot(.x)$out) %>% pmap_lgl(`&`))