我正试着输出一个三向频率表。我可以用proc (粗略地)完成这个操作,但是我希望变量的控件能够被加入。我认为proc tabulate是自定义输出的好方法。基本上,我想用频率填充单元格,然后在稍后的时间自定义百分比。因此,在每个单元格中有计数和列百分比。这对proc tabulate是可行的吗
现在我有:
proc freq data=have;
table group*age*level / norow nopercent;
run;这给了我例如:

我想要的:

下面是我使用的代码:
proc tabulate data=ex1;
class age level group;
var age;
table age='Age Category',
mean=' '*group=''*level=''*F=10./ RTS=13.;
run;谢谢!
发布于 2014-04-17 21:49:43
你当然可以接近它。您不能真正进入“一个”单元格,它需要将每件东西写到不同的单元格中,但从理论上讲,使用一些复杂的格式(可能使用CSS),您可以删除边框。
您不能在一起使用VAR和CLASS,但是由于您只需要使用百分比,所以您不需要使用平均值--您应该只使用N和COLPCTN。如果您正在处理已经汇总的数据,您可能需要进行不同的处理--如果是这样的话,那么发布一个数据集的示例(但是如果没有FREQ语句,这在PROC中也是行不通的)。
data have;
do _t = 1 to 100;
age = ceil(3*rand('Uniform'));
group = floor(2*rand('Uniform'));
level = floor(5*rand('Uniform'));
output;
end;
drop _t;
run;
proc tabulate data=have;
class age level group;
table age='Age Category',
group=''*level=''*(n='n' colpctn='p')*F=10./ RTS=13.;
run;这将N和P (n和列%)放在单个水平内的相邻细胞中。
https://stackoverflow.com/questions/23143788
复制相似问题