【问题标题】:Grouping with TRUE/FALSE in Tidyverse在 Tidyverse 中使用 TRUE/FALSE 分组
【发布时间】:2021-12-25 05:04:23
【问题描述】:

我有一个具有以下布局的数据集(随机示例):

set.seed(1)

data <- tibble(A = sample(c(TRUE, FALSE), 10, replace = T), B = sample(c(TRUE, FALSE), 10, replace = T), C = sample(c(TRUE, FALSE), 10, replace = T), value = sample(1:100, 10))

对于 A、B 和 C 的每个组合,我想计算平均值(值)。理想情况下,我想要一个新的整洁的小标题,其中包含 A、B 和 C 的这些组合以及结果(包括 A、AB、ABC、AC 等 - 如果 A/B/C 的所有可能组合)。

这里,第 1,3 和 4 行都是 ABC,这将导致

ABC - 均值 (89, 79, 33)

对于第 2,5 行 B,C - 均值 (44,84)

我该怎么办?

【问题讨论】:

  • 如果您使用sample,请设置一个set.seed,否则我们将无法获得可使用的常量数据对象。还请澄清“A、B、C 的组合”的含义。因此,请同时显示您的预期输出。
  • 您的意思是要将具有相同 A、B 和 C 值的行组合在一起,然后计算均值?

标签: r tidyverse


【解决方案1】:

一个简单的解决方案是使用 dplyr: group_by 变量 A、B、C,然后总结这些值的平均值:

library(dplyr)
dat2<-dat%>%
  group_by(A,B,C)%>%
  summarise(Mean = mean(value))

【讨论】:

  • 您不需要取消组合和汇总。它会自动取消分组。
  • 不知道,编辑了我的答案以删除取消组,谢谢@deschen
猜你喜欢
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 2011-01-23
  • 2014-05-13
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 2020-12-15
相关资源
最近更新 更多