如何排除 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
我有一个像这样但更大的 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