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

R语言中能否使用group_by统计dataframe各列接受状态的数量

可以通过group_by实现该需求,具体实现逻辑和代码如下:

你的需求本质是对每列的枚举值做频次统计,再重塑为指定的宽表结构,搭配tidyverse生态的转置函数即可快速完成。

# 加载依赖包
library(dplyr)
library(tidyr)

# 示例数据构造,可替换为你自己的dataframe
df <- data.frame(
  `Column A` = c("Accepted", "Did not accept", rep("Accepted",9), rep("Did not accept",4)),
  `Column B` = c("Did not accept", "Did not accept", rep("Accepted",2), rep("Did not accept",12)),
  check.names = FALSE
)

# 基于group_by的实现代码
stat_result <- df %>%
  # 宽表转长表,把所有列聚合为「列名」「列值」两列
  pivot_longer(cols = everything(), names_to = "col_name", values_to = "Accepted or not?") %>%
  # 按列名、接受状态分组
  group_by(col_name, `Accepted or not?`) %>%
  # 统计每组出现次数
  summarise(count = n(), .groups = "drop") %>%
  # 转回你需要的宽表结构
  pivot_wider(names_from = col_name, values_from = count)

# 输出markdown格式的可视化表格
knitr::kable(stat_result)

如果你不想用分组逻辑,也可以用table函数直接做列统计,写法更简洁:

stat_result2 <- as.data.frame(apply(df, 2, table)) %>%
  tibble::rownames_to_column("Accepted or not?")

两种方案输出的结果完全符合你要求的表格结构。

内容的提问来源于stack exchange,提问作者vvv-1234

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:24:03