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

如何在R中按分组生成含对错答案统计的DataFrame

R语言:按分类统计正误及总答题数

问题描述

现有一个包含两列的DataFrame:

  • 第一列是分类(如"S1""S2")
  • 第二列用1表示正确答案,0表示错误答案

示例数据:

SYSTEMQ1
S10
S11
S21
S20
S21

需要生成如下结构的目标DataFrame:

SystemCorrect answersWrong answersTotal answers
S1112
S2213

解决方案

方法1:使用dplyr包(tidyverse生态)

这是分组统计最直观的方式,步骤清晰:

# 未安装dplyr的话先运行:install.packages("dplyr")
library(dplyr)

# 构造示例数据
df <- data.frame(
  SYSTEM = c("S1", "S1", "S2", "S2", "S2"),
  Q1 = c(0, 1, 1, 0, 1)
)

# 生成目标表格
result_df <- df %>%
  group_by(SYSTEM) %>%
  summarise(
    `Correct answers` = sum(Q1 == 1),
    `Wrong answers` = sum(Q1 == 0),
    `Total answers` = n()
  ) %>%
  rename(System = SYSTEM)

# 查看结果
print(result_df)

方法2:使用基础R(无需额外包)

如果不想依赖第三方包,可用aggregate函数实现:

# 构造示例数据
df <- data.frame(
  SYSTEM = c("S1", "S1", "S2", "S2", "S2"),
  Q1 = c(0, 1, 1, 0, 1)
)

# 分组统计
agg_result <- aggregate(Q1 ~ SYSTEM, data = df, FUN = function(x) {
  c(
    Correct = sum(x == 1),
    Wrong = sum(x == 0),
    Total = length(x)
  )
})

# 转换为标准DataFrame并调整列名
result_df <- do.call(data.frame, agg_result)
colnames(result_df) <- c("System", "Correct answers", "Wrong answers", "Total answers")

# 查看结果
print(result_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:35:29