我想在SAS中结合观察

时间:2014-06-29 17:54:39

标签: sas dataset data-manipulation

(注意:此数据集完全是伪造的,不包含任何人或实体的实际信息)

我有一个数据集,其中包含以下格式的三个变量:

COV_ID            Adj_zip          Claim_info

PSX0002915A       98216            A-20

PSX0002915A       98216            T-14

PSX0002920A       98216            A-16

PSX0002902A       98216            T-08

etc.

除'Claim_info'外,所有观察都是重复的。我需要创建一个名为technician_info的新变量,如果claim_info观察以字母T开头,它将保存claim_info的信息。基本上我需要它看起来像这样:

COV_ID            Adj_zip          Claim_info    Technician_info

PSX0002915A       98216            A-20           T-14

PSX0002920A       98216            A-16           T-08

我不知道如何提出这个问题,所以我试着提供一个例子。任何和所有帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。

这里我将输入数据分成A记录和T记录。然后我使用PROC SQL来连接表。

如果你发现这需要很长时间,请告诉我,我可以适应一些可能会更快的事情。

data test;
format COV_ID $12.;
input COV_ID $  Adj_zip Claim_info $;

datalines;
PSX0002915A 98216 A-20
PSX0002915A 98216 T-14
PSX0002902A 98216 A-16
PSX0002902A 98216 T-08
;
run;

data As Ts;
set test;
if substr(claim_info,1,1) = 'A' then
    output As;
else if substr(claim_info,1,1) = 'T' then
    output Ts;
run;

proc sql noprint;
create table want as
select a.cov_id,
       a.adj_zip,
       a.claim_info,
       b.claim_info as Technician_info
    from As as a
      inner join
        Ts as b
    on a.cov_id = b.cov_id;
quit;