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

如何用Proc Tabulate或其他PROC计算Drug3指定剂量占总和的百分比?

可以通过SAS的Proc Tabulate或Proc SQL实现该计算

以下是两种具体的实现方案,假设你的原始数据集名为drug_data,包含变量:Drug(药物名称)、Dose(剂量)、Value(对应数值)。

方法一:使用Proc Tabulate直接生成带占比的表格

Proc Tabulate支持自定义百分比计算,通过指定分组范围来限定分母为目标剂量的总和:

proc tabulate data=drug_data format=percent8.1;
    class Drug Dose;
    var Value;
    table 
        Drug=' ',
        Dose=' '*Value=' '*[sum='数值' pctsum<Drug='Drug3' Dose in ('0.75','1.5')>='占比']
        / box='药物';
    where Drug='Drug3' and Dose in ('0.75','1.5');
run;
  • pctsum<...>参数指定了计算占比的分组范围,分母自动取该范围内的Value总和
  • percent8.1格式确保输出带一位小数的百分比,若需要整数百分比可改为percent8.0

方法二:使用Proc SQL计算并存储结果

如果需要将计算结果保存为数据集,Proc SQL的方式更灵活:

proc sql;
    create table drug3_percent as
    select 
        Drug,
        Dose,
        Value,
        round(Value / total_sum * 100, 1) as Percentage format=8.0
    from 
        drug_data,
        (select sum(Value) as total_sum from drug_data where Drug='Drug3' and Dose in ('0.75','1.5'))
    where 
        Drug='Drug3' and Dose in ('0.75','1.5');
quit;

proc print data=drug3_percent title='Drug3各剂量占比结果';
run;
  • 子查询先计算出Drug3两个目标剂量的数值总和total_sum
  • 主查询通过除法计算单个剂量的占比,round函数用于将结果取整到整数位,和你示例中的38%、61%匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:42:34