簡體   English   中英

有沒有辦法在我的 SAS 數據集中為一個國家在 SAS 中創建一個虛擬變量?

[英]Is there a way to make a dummy variable in SAS for a Country in my SAS Data Set?

我想在我的數據集中為拉丁美洲國家創建一個虛擬變量,我需要為日志 model 創建一個虛擬變量。我知道如何記錄所有這些變量以供以后回歸使用。 任何關於如何使用我的數據為拉丁美洲國家制作虛擬變量的建議或幫助將不勝感激。

data HW6;
input country : $25. midyear sancts lprots lfrac ineql pop;
cards;
CHILE  1955 58 44 65 57 6.743
CHILE  1960 19 34 65 57 7.785
CHILE  1965 27 24 65 57 8.510
CHILE  1970 36 29 65 57 9.369
CHILE  1975 38 58 65 57 10.214
COSTA_RICA 1955 16 7 54 60 1.024
COSTA_RICA 1960 6 1 54 60 1.236
COSTA_RICA 1965 2 1 54 60 1.482
COSTA_RICA 1970 3 1 54 60 1.732
COSTA_RICA 1975 2 3 54 60 1.965
INDIA  1955 81 134  47 52 404.478
INDIA  1960 101 190 47 52 445.857
INDIA  1965 189 845 47 52 494.882
INDIA  1970 133 915 47 52 553.619
INDIA  1975 132 127 47 52 616.551
JAMICA 1955 11 12 47 62 1.542
JAMICA 1960  9  2 47 62 1.629
JAMICA 1965  8  6 47 62 1.749
JAMICA 1970  1  1 47 62  1.877
JAMICA 1975  7  1 47 62  2.043
PHILIPPINES 1955 26 123 48 56 24.0
PHILIPPINES 1960 20  38 48 56 27.898
PHILIPPINES 1965 9   5  48 56 32.415
PHILIPPINES 1970 79  25 48 56 37.540
SRI_LANKA 1955 29 2 73 52 8.679
SRI_LANKA 1960 75 35 73 52 9.879
SRI_LANKA 1965 25 63 73 52 11.202
SRI_LANKA 1970 34 14 73 52 12.532
TURKEY 1955 79  1  67 61 24.145
TURKEY 1960 138 19 67 61 28.217
TURKEY 1965  36 51 67 61 31.951
TURKEY 1970  51 22 67 61 35.743
URUGUAY 1955 8  4  57 48 2.372
URUGUAY 1960 12 1  57 48 2.538
URUGUAY 1965 16 14 57 48 2.693
URUGUAY 1970 21 19 57 48 2.808
URUGUAY 1975 24 45 57 48 2.829
VENEZUELA 1955 38  14  76 65 6.110
VENEZUELA 1960 209 23  76 65 7.632
VENEZUELA 1965 100 162 76 65 9.119
VENEZUELA 1970 9   27  76 65 10.709
VENEZUELA 1975 4   12  76 65 12.722
; 
data newData;
    set HW6;
    sancts = log (sancts);
    lprots = log (lprots);
    lfrac  = log (lfrac);
    ineql  = log (ineql);
    pop    = log (pop);
run;

GLMSELECT過程是創建虛擬變量的一種簡單方法。
有一篇關於如何使用它生成虛擬變量的好文章

data newData;
    set HW6;
    sancts = log (sancts);
    lprots = log (lprots);
    lfrac  = log (lfrac);
    ineql  = log (ineql);
    pop    = log (pop);
    Y = 0; *-- Create a fake response variable --*
run;

proc glmselect data=newData noprint outdesign(addinputvars)=want(drop=Y);
   class country; 
   model Y = country / noint selection=none;
run;

如果在進一步的步驟中需要,請使用由包含虛擬變量名稱的過程創建的宏變量&_GLSMOD

這里真正的問題與 SAS 無關,它與如何通過名稱獲取國家區域有關。

我會嘗試列出所有國家及其地理位置的 ISO 3166。

獲取該列表很簡單,然后將該列表導入 SAS,按國家/地區合並,最后確定拉丁美洲的國家/地區

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM