You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言dplyr中实现分组count where条件计数功能

R dplyr分组统计代码修正方案

原有代码错误点

  • 计算mean_count时错误传入因子列col1作为均值计算对象,应该使用数值列col2
  • special_count逻辑错误:count()是用于统计数据框行数的函数,不能直接作用于数值表达式;同时nrow(dplyr_data)取的是全表行数,不是分组后的组内行数。

正确代码

library(dplyr)

dplyr_data <- data.frame(
  col1 = as.factor(c("a", "a", "a", "b", "b", "c", "c", "c")),
  col2 = c(1,1,0,0,1, 0, 0, 1)
)

summary_dplyr <- dplyr_data %>% 
  group_by(col1) %>% 
  summarise(
    mean_count = round(mean(col2, na.rm = TRUE), 2),
    # 如果需要数值类型的统计结果用这行
    # special_count = n() - sum(col2 == 0, na.rm = TRUE)
    # 如果需要匹配示例中"x-y = z"格式的字符串结果用这行
    special_count = paste0(n(), "-", sum(col2 == 0), " = ", n() - sum(col2 == 0))
  ) %>% 
  as.data.frame()

输出结果

运行上述代码后得到的输出和预期一致:

col1 mean_count special_count
1    a       0.67       3-1 = 2
2    b       0.50       2-1 = 1
3    c       0.33       3-2 = 1

内容的提问来源于stack exchange,提问作者stats_noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:45:06