我一直在使用proc means
从特定月份的数据集中获取平均 copay ,但我还需要通过< em> pharmacy 。
我似乎无法使用proc means
来做到这一点,我更喜欢它作为可以查询的数据集,而不是200个药店中的proc print
。我尝试了下面的代码,但没有得到与proc means
相同的数字:
这是我通过药房汇总数据的方式,是否有办法通过药房将其取平均值而不是求和?
%pjsum(add_ram, RAM pme_id pharmacy month, patient_benefit APPR, sum);
答案 0 :(得分:0)
假设您有一个 Patient_benefit 数字列以及 pharmacy 和 month 列,则可以使用proc means
,方法是在< em> class 和 var 子句中的数字列。确保指定平均值统计信息。下面输出一个名为 AggData 的数据集,其中以 Avg_Patient_Benefit 作为汇总列。
proc means data=myData nway ;
class pharmacy month;
var patient_benefit;
output out=AggData mean=Avg_Patient_Benefit;
run;
或者,您可以使用proc sql
运行聚合SQL查询:
proc sql;
create table AggData as
select pharmacy, month, mean(patient_benefit)
from myData
group by pharmacy, month;
quit;
您甚至可以为各个月份的列运行条件汇总:
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;