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

R语言中如何计算变量内特定取值的占比(支持缺失值处理)

HIV调研检测阴性受访者占比计算方法

基础计算逻辑

统计口径明确为所有有有效HIV检测结果的样本,核心公式:
阴性占比 = (HIV变量取值为0的样本数) / (HIV变量取值为0、1、2、3、4的总样本数) * 100%
其中HIV=1、2、3、4统一归为阳性样本,无论病毒载量水平差异,全部计入统计分母,不得随意剔除。

缺失值处理方案

缺失值指HIV变量为空、取值不在0-4范围内的无效记录(比如未参与检测、检测结果丢失、录入错误的样本),按两种场景处理:

  • 常规统计场景(默认推荐):直接剔除所有缺失值,不纳入分母计算。
    举个实际计算例子:总调研回收1200份问卷,其中HIV=0的样本共920份,HIV=1-4的样本共180份,剩余100份为无有效检测结果的缺失样本,最终阴性占比为920/(920+180)*100% ≈ 83.6%,100份缺失样本完全不参与占比运算。
  • 敏感性分析/调研质量评估场景:单独拆分指标统计,不要把缺失值强行归为阴性或阳性(会直接导致结果偏倚)。可以先算检测有效率,再算有效样本内的阴性占比:
    HIV检测有效率 = (HIV取值在0-4区间的样本数)/总调研样本数 * 100%
    有效样本阴性占比 = (HIV=0的样本数)/(HIV取值在0-4区间的样本数) *100%

注意:如果调研执行前已经预先制定了缺失值插补、加权调整规则,优先按既定调研方案执行,上述为流行病学调研通用默认处理逻辑。

常用工具实现代码

R 实现

# 清洗HIV变量,将非0-4的取值统一标记为缺失
df$HIV_valid <- ifelse(df$HIV %in% c(0,1,2,3,4), df$HIV, NA)
# 计算阴性占比,自动剔除缺失值
neg_rate <- mean(df$HIV_valid == 0, na.rm = TRUE) * 100

Python (pandas) 实现

import pandas as pd
import numpy as np
# 清洗HIV变量,将非0-4的取值统一标记为缺失
df['HIV_valid'] = df['HIV'].where(df['HIV'].isin([0,1,2,3,4]), np.nan)
# 计算阴性占比,自动跳过缺失值
neg_rate = (df['HIV_valid'] == 0).mean(skipna=True) * 100

内容的提问来源于stack exchange,提问作者sam.cold

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:21:27