2016-07-05 89 views
0

我想崩溃我的数据使用PROC SQL。然而,我注意到当我试图折叠我的数据时,我失去了一堆我想保留的变量。我试图根据变量MRN(数字)折叠我的数据。我想要保留的其他变量是CITY和SITE(这些是字符值),对于每个独特的MRN它们都是不变的,所以折叠它们应该没问题。如何在保留其他变量的同时折叠数据?

这里是我使用

proc sql; 
    create table collapsed_data as 
     select distinct mrn, 
      sum(msk_tx_yes) as msk_tx_yes, 
      sum(msk_cancel_tx_yes) as msk_cancel_tx_yes, 
      sum(msk_ca_yes) as msk_ca_yes, 
      sum(msk_cancel_ca_yes) as msk_cancel_ca_yes, 
      sum(msk_dc_yes) as msk_dc_yes, 
      sum(conc_psych_tx_yes) as conc_psych_tx_yes, 
      sum(conc_psych_ca_yes) as conc_psych_ca_yes, 
      sum (conc_psych_dc_yes) as conc_psych_dc_yes, 
      sum (conc_yes) as conc_yes, 
      sum (psych_yes) as psych_yes, 
      sum (foot_prog) as foot_prog, 
      sum (hand_prog) as hand_prog, 
      sum (surg_prog) as surg_prog, 
      sum (sx_yes) as sx_yes 
     from temp_collapsed_data 
     group by mrn; 
quit; 

的代码我不知道如何使用SELECT DISTINCT和功能整合在一起。

我想也许我可以在SELECT后添加变量CITY和STATE,同时保持DISTINCT,但它不会运行sem。

我希望能够将CITY和STATE保留在新表格中,以及我正在创建的新总结变量。如何在不将CITY和STATE变成虚拟编码变量的情况下实现这一目标?如果可能,我想保留它们作为字符值。

任何人都知道我可以做到这一点?

回答

0

Yur代码已经正确。只需将变量添加到select语句即可。

proc sql; 
    create table collapsed_data as 
     select distinct mrn, city, site, 
      sum(msk_tx_yes) as msk_tx_yes, 
      sum(msk_cancel_tx_yes) as msk_cancel_tx_yes, 
      sum(msk_ca_yes) as msk_ca_yes, 
      sum(msk_cancel_ca_yes) as msk_cancel_ca_yes, 
      sum(msk_dc_yes) as msk_dc_yes, 
      sum(conc_psych_tx_yes) as conc_psych_tx_yes, 
      sum(conc_psych_ca_yes) as conc_psych_ca_yes, 
      sum (conc_psych_dc_yes) as conc_psych_dc_yes, 
      sum (conc_yes) as conc_yes, 
      sum (psych_yes) as psych_yes, 
      sum (foot_prog) as foot_prog, 
      sum (hand_prog) as hand_prog, 
      sum (surg_prog) as surg_prog, 
      sum (sx_yes) as sx_yes 
     from temp_collapsed_data 
     group by mrn; 
quit; 

distinct语句将导致不具有相同信息的两行。

相关问题