2012-06-25 29 views
2

所以這裏是我的麻煩:我想重塑一個長格式的數據文件。但是,我沒有唯一的「j」變量;長格式文件中的每個記錄都有幾個關鍵變量。如何在Stata中沒有唯一的「j」變量來重塑?

例如,我想借此:

| caseid | gender | age | relationship to respondent| 
|---------------------------------------------------| 
| 1234 | F | 89 | mother     | 
| 1234 | F | 10 | daughter     | 
| 1235 | M | 15 | cousin     | 
etc 

,並把它變成這樣:

|caseid | gender1 | age1 | rel1 | gender2 | age2 | rel2 | 
|--------------------------------------------------------------| 
| 1234 | F  | 89 | mother| F   | 10 | daughter| 
| 1235 | M  | 15 | cousin| .   | . | .  | 
etc 

然而,數據缺乏對整形指令所必需的後綴變量。 Stata會自動生成這個後綴嗎?

回答

3

的樣本數據:

 +----------------------------------+ 
    | caseid gender age relati~p | 
    |----------------------------------| 
    1. | 1234  F 89  mother | 
    2. | 1234  F 10 daughter | 
    3. | 1235  M 15  cousin | 
    4. | 1235  F 14  sister | 
    5. | 1235  F 55  mother | 
    |----------------------------------| 
    6. | 1236  M 32 brother | 
    7. | 1236  M 68  father | 
    +----------------------------------+ 

生成一個新的ID:

. by caseid: gen newid = _n 

給你這樣的:

 +------------------------------------------+ 
    | caseid gender age relati~p newid | 
    |------------------------------------------| 
    1. | 1234  F 89  mother  1 | 
    2. | 1234  F 10 daughter  2 | 
    3. | 1235  M 15  cousin  1 | 
    4. | 1235  F 14  sister  2 | 
    5. | 1235  F 55  mother  3 | 
    |------------------------------------------| 
    6. | 1236  M 32 brother  1 | 
    7. | 1236  M 68  father  2 | 
    +------------------------------------------+ 

,你現在可以用這個重塑:

. reshape wide gender age relationship, i(caseid) j(newid) 

爲得到這個:

 +--------------------------------------------------------------------------------------------+ 
    | caseid gender1 age1 relati~1 gender2 age2 relati~2 gender3 age3 relati~3 | 
    |--------------------------------------------------------------------------------------------| 
    1. | 1234   F  89  mother   F  10 daughter    .   | 
    2. | 1235   M  15  cousin   F  14  sister   F  55  mother | 
    3. | 1236   M  32 brother   M  68  father    .   | 
    +--------------------------------------------------------------------------------------------+ 
+0

thanks !!這輕而易舉地完成了任務。 「通過」子設置是一種有用的技術,比我試圖實現的「if」語句更優雅。 – rfboyce

+0

@rfboyce,很高興聽到它的工作。 – A5C1D2H2I1M1N2O1R2T1