SAS中文论坛

标题: 如何实现下面的想法?急~~ [打印本页]

作者: shiyiming    时间: 2009-5-16 15:55
标题: 如何实现下面的想法?急~~
各位大侠,下面这个想法怎么用sas实现呢?A为字符型变量,B为数值型变量,要把相同的A 对应的B加总。下面是简化的例子。

A                B

101           2

002           3

101          3

101           4

104          1

002           10

104          5     

最后要得到下面的数据集:

A           B

101       9

002      13

104       6

我的数据集很大,不同的A有上千种。真不知道怎么做了,急,请大家帮忙,谢谢!
作者: shiyiming    时间: 2009-5-16 22:19
标题: Re: 如何实现下面的想法?急~~
data old;
input A B;
datalines;
101 2
002 3
101 3
101 4
104 1
002 10
104 5
;
run;
proc sql;
create table new as select distinct A,sum(B) as Bsum from old group by A;quit;
作者: shiyiming    时间: 2009-5-18 08:52
标题: Re: 如何实现下面的想法?急~~
data tem;
   input A $ B;
   cards;
101 2
002 3
101 3
101 4
104 1
002 10
104 5
;
run;

proc summary data=tem nway;
   class A;
   var B;
   output out=out(keep=A B) sum=B;
run;
作者: shiyiming    时间: 2009-6-14 22:54
标题: Re: 如何实现下面的想法?急~~
上面两种方法,都正确,一种是通过SQL,一种是summary,还可以用tabulate的汇总功能




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2