首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAS中的平均计算

SAS中的平均计算
EN

Stack Overflow用户
提问于 2018-07-07 15:36:28
回答 1查看 4.7K关注 0票数 0

我一直在使用proc means从我的数据集中获得一个特定月份的平均copay,但我也需要通过药房计算平均copay。

我似乎不能用proc means来完成这个任务,我更喜欢把它作为我可以查询的数据集,而不是200家药店的proc print。我尝试了下面的代码,但是我没有得到与proc means相同的数字

这就是我用药房来总结数据的方法,有没有办法用药房来表示平均值,而不是把它加在一起呢?

代码语言:javascript
复制
    %pjsum(add_ram,  RAM      pme_id pharmacy month, patient_benefit APPR, sum);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-07 16:15:47

假设您有一个patient_benefit数字列、药学列和月份列,您可以通过在类中指定组和在var子句中指定数字列来使用proc means。一定要指定平均统计量。下面输出一个名为AggData的数据集,其中Avg_Patient_Benefit作为聚合列。

代码语言:javascript
复制
proc means data=myData nway ;
  class pharmacy month;
  var patient_benefit;
  output out=AggData mean=Avg_Patient_Benefit;  
run;

或者,您可以使用proc sql运行聚合SQL查询。

代码语言:javascript
复制
proc sql;
   create table AggData as
   select pharmacy, month, mean(patient_benefit)
   from myData
   group by pharmacy, month;
quit;

您甚至可以为各个月列运行条件聚合:

代码语言:javascript
复制
proc sql;
   create table AggData as
   select pharmacy, 
          mean(case when month = "July" then patient_benefit else . end) as avg_july_month,
          mean(case when month = "August" then patient_benefit else . end) as avg_aug_month,
          mean(case when month = "September" then patient_benefit else . end) as avg_sep_month
          ...
   from myData
   group by pharmacy;
quit;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51224602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档