You need to enable JavaScript to run this app. R语言中如何基于分类列将字符转换为数值并分组计算项目平均占比
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何基于分类列将字符转换为数值并分组计算项目平均占比

实现逻辑与代码

之前的代码存在两个核心问题:

  • 未按project维度分组,直接对全量数据统计Q1分布,结果无法关联对应项目
  • 仅处理了Q1的筛选逻辑,未覆盖Q2的Top2Box统计规则

统计规则定义

本次采用Top2Box统计口径,各问题的成功项定义如下:

  • Q1:"Very likely"、"Likely"
  • Q2:"Very easy"、"Easy"

字符响应转数值逻辑

将每个字符型响应与对应问题的成功项匹配,直接二值化为数值变量:

  • 匹配成功:转为1(代表符合成功项要求)
  • 匹配失败:转为0(代表不符合成功项要求)
    后续即可基于二值变量做分组求平均计算。

可运行实现代码

# 加载依赖包
library(dplyr)

# 定义各问题的Top2Box成功项映射
top2_map <- list(
  Q1 = c("Very likely", "Likely"),
  Q2 = c("Very easy", "Easy")
)

# 分组计算统计结果
result <- masterdf %>%
  # 按项目维度分组
  group_by(project) %>%
  # 计算每个问题的Top2Box占比(二值变量均值即为成功占比)
  summarise(
    Q1 = mean(Q1 %in% top2_map$Q1) * 100,
    Q2 = mean(Q2 %in% top2_map$Q2) * 100
  ) %>%
  # 对齐输出表列名要求
  rename(Project = project) %>%
  # 格式化为带%符号的字符串,如需保留纯数值可删除此段
  mutate(
    Q1 = paste0(round(Q1), "%"),
    Q2 = paste0(round(Q2), "%")
  )

输出结果说明

运行代码后,result对象即为符合要求结构的输出表,你提供的示例输入数据对应的实际计算结果为:

ProjectQ1Q2
ProjA50%100%
ProjB50%0%
ProjC100%100%

(注:你给出的示例输出表为结构参考,实际数值由输入数据计算得出)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 14:15:07