在 SAS 中,我需要一个PROC TABULATE
重复标签的位置,以便在 Excel 上使用 INDEX-MATCH 更容易找到它们。这是 sashelp.cars 的示例。
第一个 PROC TABULATE 具有重复标签的优点,这是 INDEX-MATCH 所需要的。但是,它的缺陷是 SAS 只给出非缺失值。
data cars;
set sashelp.cars;
run;
proc sort data=cars;
by make;
run;
这并没有给出所有标签。我想要一张按列(欧洲、亚洲、美国)和每种汽车类型(轿车、SUV、旅行车、运动......)按列包含 3 大洲的表格。
PROC TABULATE DATA = cars;
option missing=0;
by make;
CLASS make type Type Origin / mlf MISSING ;
TABLE (
(type*make)
), (Origin='') / printmiss nocellmerge ; RUN;
因此,为了按列拥有所有 3 大洲,以及每种类型的汽车(轿车、SUV、旅行车、运动型......),我按照建议使用 CLASSDATA:
Data level;
set cars;
keep make type Type Origin;
Run;
PROC TABULATE DATA = cars MISSING classdata=level;
option missing=0;
by make;
CLASS make type Type Origin / mlf MISSING ;
TABLE (
(make*type)
), (Origin='') / printmiss nocellmerge ;
RUN;
Data level;
set cars;
keep make type Type Origin;
Run;
PROC TABULATE DATA = cars MISSING classdata=level;
option missing=0;
by make;
CLASS make type Type Origin / mlf MISSING ;
TABLE (
(make*type)
), (Origin='') / printmiss nocellmerge ;
RUN;
但这给出了一个巨大的表格和不重复的标签。是否有中途解决方案:
- 所有列(3 大洲),如最后一张表
- 只有相关的 MAKE,即 Acura 的前 6 行
- 像第一个 PROC TABULATE 一样的重复标签
非常感谢,