如何排除 R 中集合的最不同值?

How to exclude most dissimilar value of set in R?

我有一个像这样但更大的 df:

values <- c(22,16,23,15,14.5,19)
groups <- rep(c("a","b"), each = 3)
df <- data.frame(groups, values)

我每组有 1-3 个值(在示例中,a 组有 3 个值,b 组有 3 个值)。我现在想从每个组中排除最不相似的值。 在此示例中,我想排除 a 16 和 b 19。

感谢您的帮助!

如果您正在寻找 一个 值来丢弃,您可以删除与每组平均值距离最大的观察值:

df %>% 
  group_by(groups) %>% 
  mutate(dist = abs(values - mean(values))) %>% 
  filter(dist != max(dist))

# A tibble: 4 × 3
# Groups:   groups [2]
  groups values  dist
  <chr>   <dbl> <dbl>
1 a        22    1.67
2 a        23    2.67
3 b        15    1.17
4 b        14.5  1.67