首页 > 解决方案 > 计算数据框中多个变量的行数

问题描述

我希望计算满足特定条件的行数(对于 a、b 和 c),同时还要记住 d 和 e 的值并对它们求和。例如:

开始数据集(df1):

set.seed(1)
df1 <- data.frame(
 a = sample(1:10,10,T),
 b = sample(1:13,10,T),
 c = sample(1:5,10,T),
 d = sample(c(0,1),10,T),
 e = sample(c(0,1),10,T))
df1 <- rbind(df1, c(3,3,5,1,1))

结束数据集(df2):

library(dplyr)
df2 <- df1 %>%
  dplyr::count(a, b, c, name = 'count_abc') 

df2 <- data.frame(df2, count_d = c(0,1,1,1,0,1,0,1,0,1), count_e = c(1,2,1,1,1,1,0,1,1,0))

注意:我在 df1 中手动添加了一行来演示应该如何处理匹配的行

标签: rdataframe

解决方案


您可以避免count()并手动进行一些计数,即

library(dplyr)

df1 %>% 
 group_by(a, b, c) %>% 
 summarise(cnt = n(), 
           sum_d = sum(d), 
           sum_e = sum(e))

推荐阅读