sas分类汇总
我数据表里有列A(日期),列B(类型),列C(需要求和的量)和列D(需要求和的量),其中是在每个A中有不同的B,在SAS里如何先按照A,再按B来分类加总,即每个日期中的所...
我数据表里有列A(日期),列B(类型),列C(需要求和的量)和列D(需要求和的量),其中是在每个A中有不同的B,在SAS里如何先按照A,再按B来分类加总,即每个日期中的所有相同类型的B相加,然后再到下个日期,再把相同类型的B相加???数据格式如下:
A1 B1 C D
A2 B1 C D
A3 B1 C D
A4 B1 C D
A1 B2 C D
A2 B2 C D
A3 B3 C D
A4 B4 C D 展开
A1 B1 C D
A2 B1 C D
A3 B1 C D
A4 B1 C D
A1 B2 C D
A2 B2 C D
A3 B3 C D
A4 B4 C D 展开
2个回答
展开全部
这样应该可以了。。。
data test;
input x $ y $ z k;
cards;
a1 1 1 1
a1 1 2 2
a2 1 1 1
a2 1 2 2
a3 3 1 1
a3 3 3 3
a1 4 4 4
a2 5 5 5
a3 6 6 6
;
proc summary data=test nway nmiss;
class x y;
var z k;
output out=test1(drop=_:)
sum(z)=sum_z
sum(k)=sum_k;
run;
data test;
input x $ y $ z k;
cards;
a1 1 1 1
a1 1 2 2
a2 1 1 1
a2 1 2 2
a3 3 1 1
a3 3 3 3
a1 4 4 4
a2 5 5 5
a3 6 6 6
;
proc summary data=test nway nmiss;
class x y;
var z k;
output out=test1(drop=_:)
sum(z)=sum_z
sum(k)=sum_k;
run;
追问
数据格式已经存在,不用继续输入,我就想怎么可以先按找A的分类,再按B的分类然后进行汇总?也就是说把所有A1里面的B1全加起来,然后再把A2里的B1又加起来,然后A3的B1加起来,然后A2的B1.A2的B2...如此类推,其实准确的格式是这样
A1 B1 C
A1 B1 C
A1 B1 C
A1 B1 C
A2 B1 C
A2 B1 C
A3 B1 C
A3 B1 C
A1 B2 C
A1 B2 C
A2 B2 C
A2 B2 C
追答
proc summary data=你得数据集名字 nway nmiss;
class A B;
var C;
output out=test1(drop=_:)
sum(C)=sum_C;
run;
展开全部
data tmp;
input x$ y $z ;
cards;
A1 B1 1
A1 B1 2
A1 B1 3
A1 B1 4
A2 B1 5
A2 B1 6
A3 B1 7
A3 B1 8
A1 B2 9
A1 B2 10
A2 B2 11
A2 B2 12
;
run;
proc sort data=tmp out=a ;by x y;run;
data b;
retain num 0;
set a;
by x y;
if first.x or first.y then num=z;else num=sum(z,num);
if last.x or last.y;
run;
input x$ y $z ;
cards;
A1 B1 1
A1 B1 2
A1 B1 3
A1 B1 4
A2 B1 5
A2 B1 6
A3 B1 7
A3 B1 8
A1 B2 9
A1 B2 10
A2 B2 11
A2 B2 12
;
run;
proc sort data=tmp out=a ;by x y;run;
data b;
retain num 0;
set a;
by x y;
if first.x or first.y then num=z;else num=sum(z,num);
if last.x or last.y;
run;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询