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

R语言如何筛选≥50%答题率受访者并统计各部门员工答题占比

调研数据按组织单元统计普通员工答题占比的实现方案

基础数据说明

我基于正在开展的调研构建了一个tibble,字段规则如下:

  • 6道答题字段:Q1~Q6,每道题共2个选项
  • 组织单元字段:Org_unit,取值范围1-4,对应4个不同的组织
  • 人员类型字段:Manager,取值1代表管理人员,2代表普通员工
  • 原始数据中-9代表未作答,已统一替换为NA

基础数据构造代码:

library(dplyr)

Org_unit <- c(1,1,1,1,2,2,2,3,3,4)
Manager <- c(1,1,2,2,1,1,1,1,2,2)
Q1 <-  c(1,2,1,2,1,2,1,2,1,2)
Q2 <- c(1,-9,-9,-9,-9,-9,-9,-9,-9,-9) #Note one response
Q3 <- c(1,1,2,-9,-9,2,1,1, -9, 1)
Q4 <- c(1,1,-9,1,2,2,-9,1,-9,2)
Q5 <- c(1,-9,-9,-9,-9,-9,-9,-9,-9,-9)
Q6 <- c(1,-9,-9,-9,-9,-9,-9,-9,-9,-9)

df <- tibble(Org_unit, Manager, Q1, Q2, Q3, Q4, Q5, Q6)
df[df == -9] <- NA
df

统计规则说明

需要实现按组织单元统计普通员工的答题占比,规则如下:

  1. 仅统计Manager == 2的普通员工样本
  2. 受访者有效答题率≥50%才可计入统计基数(总题量为6,即至少3道题有作答)
  3. 无符合条件样本的组织单元仍需保留在结果中,对应统计字段值为NA
  4. 每个题目统计的是符合条件的样本中选1的人数占比

原有代码的问题

原有统计代码没有过滤低答题率的受访者,且不会保留无符合条件样本的组织单元:

# 原有代码
prop <-df %>%
  group_by(Org_unit) %>%
  filter(Manager == 2) %>%
  summarise(N = n(), 
        across(c(Q1, Q2, Q3, Q4, Q5, Q6), ~mean(. == 1))) 

修正后的实现代码

需要先逐行计算受访者的有效答题率,过滤符合要求的样本后再分组统计,同时补全所有组织单元:

library(dplyr)
library(tidyr)

# 固定总题量为6
total_questions <- 6

prop <- df %>%
  # 先筛选普通员工样本
  filter(Manager == 2) %>%
  # 逐行计算每个受访者的有效答题率
  rowwise() %>%
  mutate(valid_rate = sum(!is.na(c_across(Q1:Q6))) / total_questions) %>%
  ungroup() %>%
  # 仅保留答题率达标的样本
  filter(valid_rate >= 0.5) %>%
  # 按组织单元分组统计
  group_by(Org_unit) %>%
  summarise(
    N = n(),
    across(Q1:Q6, ~mean(. == 1, na.rm = TRUE))
  ) %>%
  # 补全所有4个组织单元,无数据的自动填充NA
  complete(Org_unit = 1:4) %>%
  # 把样本量为0的N替换为NA,符合输出要求
  mutate(N = ifelse(N == 0, NA_integer_, N))

输出结果

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

> prop
# A tibble: 4 × 8
  Org_unit     N    Q1    Q2    Q3    Q4    Q5    Q6
     <int> <int> <dbl> <lgl> <dbl> <dbl> <lgl> <lgl>
1        1    NA    NA NA       NA    NA NA    NA   
2        2    NA    NA NA       NA    NA NA    NA   
3        3    NA    NA NA       NA    NA NA    NA   
4        4     1     0 NA        1     0 NA    NA   

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:54:01