【问题标题】:How to add secondary summary of previously grouped/summarized data for purposes of sorting in R with dplyr如何添加先前分组/汇总数据的辅助摘要,以便使用 dplyr 在 R 中进行排序
【发布时间】:2019-10-19 22:03:21
【问题描述】:

我正在绘制两组 - 之前和之后
每组有 2 个级别 - 上、下
对于每个级别,我计算了摘要统计,计数

我正在尝试创建新的汇总统计,它是数据库中每个级别的总计数 new_count

new_count 将用于在绘图时对级别进行排序

这是原来的df

group   level
before  up
before  up
before  up
before  up
before  down
before  down
before  down
before  down
before  down
before  down
before  down
before  down
after   up
after   up
after   up
after   up
after   up
after   up
after   down
after   down
after   down

这是原始输出

group   level   count   
before  up      4       
before  down    8       
after   up      6       
after   down    3       

这是最终输出的样子

group   level   count   new_count
before  up      4       10
before  down    8       11
after   up      6       10
after   down    3       11

我的代码

df %>% group_by(group, level) %>% summarize(count = n())

是否可以执行嵌套汇总之类的操作?

df %>% group_by(group, level) %>% 
           summarize(count = n(),
                     new_count = group_by(level) %>%
                                 summarize(new_count = n()))

【问题讨论】:

  • 也许df %>% group_by(group, level) %>% summarise(count = n()) %>% group_by(level) %>% mutate(count = sum(count)) ?
  • 谢谢 - 改成“new_count”,这有效 df %>% group_by(group, level) %>% summarise(count = n()) %>% group_by(level) %> % 变异(new_count = sum(count))

标签: r dplyr summarize


【解决方案1】:

一种可能是:

df %>%
 add_count(level) %>%
 group_by(group, level) %>%
 summarise(count = n(),
           new_count = first(n))

  group  level count new_count
  <chr>  <chr> <int>     <int>
1 after  down      3        11
2 after  up        6        10
3 before down      8        11
4 before up        4        10

【讨论】:

    【解决方案2】:

    使用data.table的选项

    library(data.table)
    setDT(df1)[, n := .N, level][, .(count = .N, new_count = first(n)), .(group, level)]
    #    group level count new_count
    #1: before    up     4        10
    #2: before  down     8        11
    #3:  after    up     6        10
    #4:  after  down     3        11
    

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      相关资源
      最近更新 更多