Sas 以类别作为标签制表
我试图制作一个表格,其中包含每组的总数。 我有章节、小节和条目。在每一小节之后 应显示一行与本小节的总计,并且 在每个区段之后,都有一行区段总数 我试着使用Sas 以类别作为标签制表,sas,Sas,我试图制作一个表格,其中包含每组的总数。 我有章节、小节和条目。在每一小节之后 应显示一行与本小节的总计,并且 在每个区段之后,都有一行区段总数 我试着使用proc tablate,但是小计被称为Sum或其他固定标签。我想使用分类名称进行分类汇总 例1 首先是一个小例子来说明,下面我有一个完整的运行示例 这显示了我在程序表上的尝试以及我想要实现的目标 输入数据 ============================== Group Group2 Item Weight -----
proc tablate
,但是小计被称为Sum或其他固定标签。我想使用分类名称进行分类汇总
例1
首先是一个小例子来说明,下面我有一个完整的运行示例
这显示了我在程序表上的尝试以及我想要实现的目标
输入数据
==============================
Group Group2 Item Weight
----- ------ ---- ------
Mammals Cats Lion 215
Mammals Cats Cheetah 70
Mammals Dogs Wolf 80
Mammals Dogs Jackal 45
==============================
期望结果
===================
Group/Item Weight
----------- ------
Lion 215
Cheetah 70
Cats 285
----------- ------
Wolf 80
Jackal 45
Dogs 125
----------- ------
Mammals 410
===================
例2
SAS代码中稍长的示例
其中还包括缺少的值
data animals;
input group1 $ group2 $ animal $ weight;
datalines;
Mammals Cats Lion 215
Mammals Cats Cheetah 70
Mammals Cats Leopard 65
Mammals Dogs Wolf 80
Mammals Dogs Jackal 45
Birds Raptors Eagle 6
Birds Raptors Hawk 5
Birds . Duck 2
. . Snake 3
;
我的尝试失败了,桌子太复杂了
PROC TABULATE DATA=ANIMALS OUT=ANIMAL_SUMMARY;
VAR weight;
CLASS group1 / ORDER=DATA MISSING;
CLASS group2 / ORDER=DATA MISSING;
CLASS animal / ORDER=DATA MISSING;
TABLE group1*(group2*(animal Sum) Sum) Sum, weight;
RUN;
接近预期结果的一种数据形式
data target;
input group1 $ group2 $ animal $ weight;
datalines;
. . Lion 215
. . Cheetah 70
. . Leopard 65
. Cats . 350
. . Wolf 80
. . Jackal 45
. Dogs . 125
Mammals . . 475
. . Eagle 6
. . Hawk 5
. Raptors . 11
. . Duck 2
Birds . . 13
. . Snake 3
. . . 491
;
我不认为你能从表格中得到你想要的东西。你可能得去报到才能得到你想要的
不过,你可以靠得很近
PROC TABULATE DATA=ANIMALS OUT=ANIMAL_SUMMARY;
VAR weight;
CLASS group1 / ORDER=DATA MISSING;
CLASS group2 / ORDER=DATA MISSING;
CLASS animal / ORDER=DATA MISSING;
TABLE group1*(group2*(animal=' ' Sum=' '*group2=' ') Sum=' '*group1=' ') Sum='Total', weight;
RUN;
我在这里添加了group2
和group1
,并删除了一些标签。出于某种原因,它不会删除所有标签,但它确实删除了大部分标签,并将您的group2/group1放在正确的行上
它还发出警告:
警告:类变量在第313行的table语句中与自身交叉。这可能会导致不可预测的结果
在这种情况下,这很好,但要注意这一点(特别是如果您的商店是“干净的原木”商店;在这种情况下,这可能不起作用)
除此之外,我认为您必须转到
PROC REPORT
获取,这是很有可能的(例如,REPORT很乐意使用RBREAK
对行进行小计)。特别感谢使用PROC REPORT
的建议,我需要更多地阅读它,但它似乎更适合这项任务。