2017-08-28 66 views
-1

我現在有存儲這樣的24個年齡組數據:SAS宏來創建新的變量與64個前綴

Group Estimate 
agegp1 4.5 
agegp2 5 
agegp3 7.8 
. 
. 
. 
agegp24 9.5 

我需要這24個年齡組重複64次以上,每次都一個獨特的前綴爲64個縣。所以它會是這樣的:

NewGroup  Estimate 
CountyAagegp1 4.5 
CountyBagegp1 4.5 
CountyCagegp1 4.5 

CountyAagegp2 5 
CountyBagegp2 5 
CountyCagegp2 5 

所有24個組和所有64個縣。

SAS中是否有一種宏觀方式來迭代地執行這樣的事情?

謝謝!

+0

未來,請在發佈問題之前包括您嘗試的內容,並查看有關帖子內容的問題指南。 – Reeza

+0

還值得注意的是,你不是在這裏創建變量,而是爲數據集添加值。添加變量將添加新列。 – Reeza

回答

0

不需要宏,只需要一個普通的舊數據步驟(或proc sql)。

如果你有一個表,像這樣:

data have; 
    input Group $ Estimate; 
datalines; 
agegp1 4.5 
agegp2 5 
agegp3 7.8 
;;;; 
run; 

而一個縣的表像這樣:

data counties; 
    input county $; 
    datalines; 
Cook 
Lake 
Dekalb 
;;;; 
run; 

你只需要使用一個嵌套循環,使用pointnobs選項,以遍歷縣表,然後爲每個內部循環迭代輸出一行。

data want; 
    set have; 
    do _n_ = 1 to nobs_counties; 
     set counties nobs=nobs_counties point=_n_; 
     output; 
    end; 
run; 

你可能想要做一些工作來連接縣/年齡組變量,或者把它們分開。

+0

像魅力一樣工作,非常感謝! – BenW