2016-07-05 77 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語句將導致不具有相同信息的兩行。

相關問題