全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1213 2
2012-09-03
test2
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-9-3 16:51:03
你的问题太简单,没人愿意回答
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-4 16:44:17
你好。不知你是否已经解决了问题。我也才学sas不久。我编了一个代码,可能比较繁琐,但是run了一下,符合你的要求。你可以试试。因为我觉得你可能需要把2010年和2011年的数据分开考虑。所以下面的代码只是得到10年的结果。如果需要11年的,只需将代码中2010改成2011即可。
data ds1 ;
        infile 'c:\users\ds1.dat' dlm=',';
        length account $5;
        length name $18;
        input account $  open_date  name $ type $ ;
run;
data ds2 ;
infile 'c:\users\ds2.dat' dlm=',';
length trans_type $20;
input account $ trans_amount trans_date trans_type $;
run;
data ds22010;
        set ds2;
        transdate=put(trans_date,8.);
        transyear=substr(transdate,1,4);
        if transyear='2010';
run;
proc sort data=ds1;
        by account;
run;
proc sort data=ds22010;
        by account;
run;
data temp2010;
        merge ds1(in=in1) ds22010(in=in2);
        by account;       
        if in1 and in2;
        if  first.account then do;
        totalamount=0;
        number=0;
        end;
        do until(last.account ne .);
        totalamount+trans_amount;
        number+1;
        end;
        if last.account then output;
        keep account open_date totalamount number;
run;
proc print data=temp2010;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群