如何在按 R 中的另一列分组后仅删除一列中的异常值

How to remove outliers in only one column after grouping by another column in R

我想在按 TYPE 分组后从变量 MEASURE 中删除离群值。我尝试了以下代码,但没有用。我进行了搜索,但只遇到了如何删除整个数据框或一列的异常值。但不是分组后。

df2 <- df %>%
  group_by(TYPE) %>%
  mutate(MEASURE_WITHOUT_OUTLIERS = remove_outliers(MEASURE))

您可以使用 boxplot.stats 获取每个组中的离群值并使用 filter 删除它们。

library(dplyr)

df2 <- df %>%
  group_by(TYPE) %>%
  filter(!MEASURE %in% boxplot.stats(MEASURE)$out) %>%
  ungroup