dplyr - 获取要汇总的 group_by 数量

Tho*_*rst 3 r dplyr

我想传递我的 group_by 变量的长度来总结。

示例数据

set.seed(112)
    df <- data.frame(
groupper = factor(sample.int(n = 12, size = 100, replace = TRUE)),
                     var = runif(100, min = 1, max = 25)
)
Run Code Online (Sandbox Code Playgroud)

现在我有不同数量的因素:

table(df[,1])
1  2  3  4  5  6  7  8  9 10 11 12 
8  7  4  8  9  7 10  7 11  3 13 13 
Run Code Online (Sandbox Code Playgroud)

var现在我想简单地找到每个在特定时间间隔内的份额groupper

我的代码如下所示:

results <- df %>% group_by(groupper) %>% summarise(
var0_25 = sum(var < 25 / length(groupper)), 
var25_50 = sum(var >= 25 & var < 50) / length(groupper))
#etc...
)
Run Code Online (Sandbox Code Playgroud)

但是,我到底如何才能将正确的group_by(groupper)长度输入到我的中summarize?它会因每个因素而变化。

akr*_*run 5

我们可以用来n()获取每组的元素数量

library(dplyr)
df %>% 
    group_by(groupper) %>% 
    summarise(var0_25 = sum(var <25)/n(), 
              var25_50=sum(var >=25 & var < 50 )/n())
Run Code Online (Sandbox Code Playgroud)