我一直在使用proc means从我的数据集中获得一个特定月份的平均copay,但我也需要通过药房计算平均copay。
我似乎不能用proc means来完成这个任务,我更喜欢把它作为我可以查询的数据集,而不是200家药店的proc print。我尝试了下面的代码,但是我没有得到与proc means相同的数字
这就是我用药房来总结数据的方法,有没有办法用药房来表示平均值,而不是把它加在一起呢?
%pjsum(add_ram, RAM pme_id pharmacy month, patient_benefit APPR, sum);发布于 2018-07-07 16:15:47
假设您有一个patient_benefit数字列、药学列和月份列,您可以通过在类中指定组和在var子句中指定数字列来使用proc means。一定要指定平均统计量。下面输出一个名为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;https://stackoverflow.com/questions/51224602
复制相似问题