Sas Proc表格分组数据-三个变量

Sas Proc表格分组数据-三个变量,sas,Sas,我有三个变量CONFIG,YEAR,TOT_áSAL,我需要行中的所有配置,列中的年份和 基于行和列中的值,我需要第三个变量totu SAL的和 到目前为止,我正在尝试这一点 PROC TABULATE data=final OUT=work.final; CLASS CONFIG YEAR; TABLES CONFIG,YEAR; Var TOT_SAL; RUN;

我有三个变量CONFIG,YEAR,TOT_áSAL,我需要行中的所有配置,列中的年份和 基于行和列中的值,我需要第三个变量totu SAL的和

到目前为止,我正在尝试这一点

 PROC TABULATE data=final OUT=work.final;
                CLASS CONFIG YEAR;
                TABLES CONFIG,YEAR;
                Var TOT_SAL;
                RUN;
这给了我配置和年份的交叉表,而不是配置的频率
我需要交叉表中的总和。

这里有一个例子说明如何做到这一点。由于您没有提供数据,我使用了SASHELP.SHOES数据集,因此可以复制此示例。如果您需要进一步的帮助,请确保发布实际的样本数据

proc tabulate data=sashelp.shoes;
class region product;
var sales;
table region, product*(sales='')*(sum=''*f=dollar32.);
run;
图中显示了另一种方法,并详细解释了每个步骤

最简单的答案是添加VAR语句。注意,在CLASS语句中有tot_sal。这是不正确的,因为CLASS语句用于分类/分组变量,而不是要汇总的变量。这些将放在VAR语句中

PROC TABULATE data=final OUT=work.final;
            CLASS CONFIG YEAR;
            VAR TOT_SAL;
            TABLES CONFIG, YEAR*TOTAL_SAL*(sum=''*f=dollar32.) ;

RUN;

您好:我尝试了第二个例子,它仍然提供相同的结果,对于变量TOT_òSAL,我需要sum,在配置和年份的交叉表中,我只收到其中任何一个的频率值。发布代码,否则我会试图猜测你做了什么,出了什么问题。我修改了代码,如果你的数据如所述,应该可以工作。代码运行良好,没有错误,但没有收到预期的输出,例如,交叉表中应该有变量TOT__SAL的总和,但是它正在计算数据中出现的频率。如果没有代码,我会说你做错了,但不能告诉你是什么。上面的第一个例子显然是正确的,所以方法是正确的。您的数据结构不正确,或者缺少部分代码。