所以这是我的麻烦:我想将长格式数据文件重新整形。但是,我没有唯一的“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
但是,数据缺少reshape命令所需的后缀变量。有没有办法让Stata自动生成这个后缀?
答案 0 :(得分: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 . |
+--------------------------------------------------------------------------------------------+