全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6552 4
2009-12-15
CIFNOab
a2209103087332
a2209103087331
a2209101763853
a2209103673132

CIFNOclitype
a2209103087331
a2209103087331
a2209103673131
a2209102828971
a2209102508731
如图,这两个表怎么横向合并啊?
二维码

扫码加我 拉你入群

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

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

全部回复
2009-12-15 15:33:21
下面是SAS程序:

* input the 1st data file ;
DATA first;
  LENGTH CINFO $ 13;
  INPUT CINFO $ ab ;
CARDS;
a220910308733        2
a220910308733        1
a220910176385        3
a220910367313        2
;
RUN;
* input the 2nd data file ;
DATA second;
  LENGTH CINFO $ 13;
  INPUT CINFO $ clitype ;
CARDS;
a220910308733        1
a220910308733        1
a220910367313        1
a220910282897        1
a220910250873        1
;
RUN;
* 1. sort "first" on CINFO and save the sorted file as "first_s" ;
PROC SORT DATA=first OUT=first_s;
  BY CINFO;
RUN;
* 2. sort "second" on CINFO and save the sorted file as "second_s" ;
PROC SORT DATA=second OUT=second_s;
  BY CINFO;
RUN;
* 3. merge "first_s" and "second_s" based on CINFO, creating "final" ;
DATA final;
  MERGE first_s second_s;
  BY CINFO;
RUN;
* Let's do a PROC PRINT of "final" to see if the merge worked ;
PROC PRINT DATA=final;
RUN;

输出是:
                                           The SAS System     14:40 Wednesday, December 15, 2009   3

                               Obs        CINFO        ab    clitype

                                1     a220910176385     3       .
                                2     a220910250873     .       1
                                3     a220910282897     .       1
                                4     a220910308733     2       1
                                5     a220910308733     1       1
                                6     a220910367313     2       1


应该是你想要的结果了吧?
二维码

扫码加我 拉你入群

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

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

2009-12-15 16:50:34
data a;
input CIFNO $13. ab ;
cards;
a220910308733 2
a220910308733 1
a220910176385 3
a220910367313 2
;
run;
data b;
input CIFNO $13. clitype ;
cards;
a220910308733 1
a220910308733 1
a220910367313 1
a220910282897 1
a220910250873 1
;
run;
proc sql;
create table c as
select * from b full join a on a.CIFNO=b.CIFNO;
quit;

高手可以帮我看看,为什么我做的不对吗?错在哪了?
二维码

扫码加我 拉你入群

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

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

2009-12-15 23:56:48
3# qzuxwj138

因为select * from b full join a 就会以b的cifno为标准来配比a的cifno, 如果b 没有的,a有,cifno就会显示为空缺值.
用哪种方法 要看楼主需要得出什么样的结果。
二维码

扫码加我 拉你入群

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

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

2009-12-16 02:34:44
建议楼主学一下Perl,统计分析用SAS没的说,但处理文件和数据,用Perl那是当之无愧的,即实用又简单。处理完后,统计分析就交给SAS吧。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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