如何排除R中设置的最不同值?

发布于 2025-01-27 19:37:46 字数 247 浏览 1 评论 0原文

我的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组B值3值中)。我现在想从每个组中排除最不同的价值。 在此示例中,我想排除16和b 19。

谢谢您的帮助!

I have a df looking like this but larger:

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

I have between 1-3 values per group (in the example 3 values for group a and 3 values for group b). I now want to exclude the most dissimilar value from each group.
In this example I would want to exclude a 16 and b 19.

Thank you for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

国际总奸 2025-02-03 19:37:46

如果您正在寻找一个丢弃的价值,则可以删除距平均值最高距离的观察值:

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

If you're looking for one value to discard, you can remove the observation that has the highest distance from the mean value per group:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文