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

Tah*_*nee 0 r similarity subset dataframe

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

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

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

感谢您的帮助!

Maë*_*aël 5

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

\n
df %>% \n  group_by(groups) %>% \n  mutate(dist = abs(values - mean(values))) %>% \n  filter(dist != max(dist))\n\n# A tibble: 4 \xc3\x97 3\n# Groups:   groups [2]\n  groups values  dist\n  <chr>   <dbl> <dbl>\n1 a        22    1.67\n2 a        23    2.67\n3 b        15    1.17\n4 b        14.5  1.67\n
Run Code Online (Sandbox Code Playgroud)\n