【问题标题】:I am trying to combine observations in SAS我正在尝试结合 SAS 中的观察结果
【发布时间】:2015-12-30 02:36:49
【问题描述】:

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

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

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”外,所有观察结果均重复。如果claim_info 观察以字母T 开头,我需要创建一个名为technical_info 的新变量,它将保存claim_info 的信息。基本上我需要它看起来像这样:

COV_ID            Adj_zip          Claim_info    Technician_info

PSX0002915A       98216            A-20           T-14

PSX0002920A       98216            A-16           T-08

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

【问题讨论】:

    标签: sas dataset data-manipulation


    【解决方案1】:

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

    这里我将输入数据拆分为 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;
    

    【讨论】:

    • 这很棒。太感谢了。我没有考虑将它们分成两个数据集。再次感谢您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多