作者zennage (为什麽)
站内Statistics
标题Re: [程式] SAS的资料处理问题
时间Sun Sep 2 22:46:09 2012
※ 引述《koalababy802 (koala)》之铭言:
: Industry为用户编号,num为行业代码。
: 我有两个档案,第一个档案拥有用户编号以及行业代码,第二个档案因为不存在行业代码
: ,但之後分组会使用到,所以我想要由第一个档案中抓取。
: 目前的想法是将两个档案合并,再用lag的方式抓取,但是似乎没用,
: 而且有些资料必须lag许多期,此法似乎不可行。
: 想请问板上大大,该如何从我的档案一来抓取相对应的行业代码至档案二呢?谢谢。
: 以下为资料所撷取的一部份
: <档案一> <档案二> <档案二>
: Industry1 Num1 Industry2 Industry2 Num2
: E0003 I551 E0003 E0003 I551
: E0005 Q862 E0005 E0005 Q862
: E0007 Q861 E0007 E0007 Q861
: E0008 O831 E0008 E0008 O831
: E0012 K652 E0012 E0012 K652
: E0013 I551 E0013 E0013 I551
: E0018 K641 E0015 E0015
: E0020 H541 E0017 想将档案二变成 E0017
: E0024 K641 E0018 = = = = = > E0018 K641
: E0026 G471 E0020 E0020 H541
: E0028 L681 E0020 E0020 H541
: E0031 L681 E0020 E0020 H541
: E0035 J610 E0020 E0020 H541
: E0036 P855 E0024 E0024 K641
: E0041 G471 E0026 E0026 G471
: E0041 G471 E0028 E0028 L681
: E0047 G471 E0031 E0031 L681
: E0048 G471 E0035 E0035 J610
用rename的方式换一下,献丑了
temp3 的资料会是你要的格式
data temp;
input Industry1$ Num1$ ;
cards;
E0003 I551
E0005 Q862
E0007 Q861
E0008 O831
E0012 K652
E0013 I551
E0018 K641
E0020 H541
E0024 K641
E0026 G471
E0028 L681
E0031 L681
E0035 J610
E0036 P855
E0041 G471
E0041 G471
E0047 G471
E0048 G471
;
proc sort; by Industry1;
run;
data temp1;
input Industry2$;
cards;
E0003
E0005
E0007
E0008
E0012
E0013
E0015
E0017
E0018
E0020
E0020
E0020
E0020
E0024
E0026
E0028
E0031
E0035
;
run;
data temp2;set temp1;rename Industry2=Industry1;proc sort;by Industry1;run;
data temp3;merge temp2 temp;by Industry1;rename Industry1=Industry2;run;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.5.131
1F:推 koalababy802:非常感激,试出来了^_^ 09/05 23:23