假设我有以下数据集:
Category Premium1 Premium2
A 10 20
A 15 40
B 10 15
C 20 25
使用proc制表(这是一个简化的例子,我有更多的分类变量和双向表),我想为每个类别显示Premium2超过Premium1的%变化。
现在我已经创建了一个Premium2_over_Premium1变量,我显示了这个变量的加权平均值,其中权重是Premium1。但这给了我一个因素,而不是百分比的变化。 例如,类别AI将获得((20/10)* 10 +(40/15)* 15)/(10 + 15)= 2.4,但我想看到的是2.4 - 1 = 1.4 = 140%。
这似乎是一个足够简单的任务,但我找不到办法做到这一点!任何帮助非常感谢。
答案 0 :(得分:1)
您可以在PROC REPORT
中执行此操作,但可能不在PROC TABULATE
中执行此操作,至少在没有干预数据操作的情况下也是如此。
我没有完全按照你想要的百分比变化变量,因为你所描述的与我对百分比变化意义的看法不符,但我认为这可以得到你要求的结果。如果没有,这个概念应该很容易理解。
data have;
input Category $ Premium1 Premium2;
datalines;
A 10 20
A 15 40
B 10 15
C 20 25
;;;;
run;
proc report data=have nowd;
columns category premium1 premium2 pctChg;
define category/group; *like CLASS in most other procs;
define premium1/analysis mean; *use for analysis, show the mean;
define premium2/analysis mean; *same, could include NOPRINT to hide these columns;
define pctChg/computed format=percent9.1; *calculated (computed) column, with a format;
compute pctChg; *compute (calculate) the variable;
pctChg = premium2.mean/premium1.mean - 1; *to refer to analysis vars, use <var>.<statistic>;
endcomp;
run;