【问题标题】:Conditional grouping in column in data frame in RR中数据框中的列中的条件分组
【发布时间】:2017-06-26 04:09:05
【问题描述】:

我有一个看起来像这样的数据框

其中 b 的值范围为 1:31 和 alpha_1、alpha_2 和 alpha_3 只能有值 0 和 1。对于每个 b 值,我有 1000 个观察值,因此总共有 31000 个观察值。我想按 b 对整个数据集进行分组,并且只想在其值为 1 时计算 alpha 列的值。因此,最终结果将有 31 个观察值(从 1:31 开始的唯一 b 值)和 1 时的 alpha 值计数。

我如何在 R 中执行此操作。我尝试在 dplyr 中使用管道方法,但似乎没有任何效果。

【问题讨论】:

标签: r data-manipulation


【解决方案1】:

我们可以使用

library(dplyr)
df1 %>%
    group_by(b) %>%
    summarise_at(vars(starts_with("alpha")), sum)

【讨论】:

  • 感谢您的回复。虽然这似乎返回了预期的结果,但我有一个问题:在这个命令中,我们如何检查 alpha 列的值是否为 1?即我们只计算 1 而不是 0
  • @Scorpio 只需检查sum(c(1, 1, 1, 0)) 的输出当我们求和时,0 + 任意数 = 任意数,即 0 没有任何效果
  • 是的。这点我一定是想多了。就是这么简单的解决方案。再次感谢您!
猜你喜欢
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 2018-09-15
  • 2018-11-25
相关资源
最近更新 更多