首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对3维表使用表格

对3维表使用表格
EN

Stack Overflow用户
提问于 2014-04-17 21:29:04
回答 1查看 2.8K关注 0票数 1

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

现在我有:

代码语言:javascript
运行
复制
proc freq data=have;
table group*age*level / norow nopercent;
run;

这给了我例如:

我想要的:

下面是我使用的代码:

代码语言:javascript
运行
复制
proc tabulate data=ex1;
  class age level group;
  var age;
  table age='Age Category', 
        mean=' '*group=''*level=''*F=10./ RTS=13.;
run;

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-17 21:49:43

你当然可以接近它。您不能真正进入“一个”单元格,它需要将每件东西写到不同的单元格中,但从理论上讲,使用一些复杂的格式(可能使用CSS),您可以删除边框。

您不能在一起使用VAR和CLASS,但是由于您只需要使用百分比,所以您不需要使用平均值--您应该只使用N和COLPCTN。如果您正在处理已经汇总的数据,您可能需要进行不同的处理--如果是这样的话,那么发布一个数据集的示例(但是如果没有FREQ语句,这在PROC中也是行不通的)。

代码语言:javascript
运行
复制
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和列%)放在单个水平内的相邻细胞中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23143788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档