【发布时间】:2015-04-09 23:40:00
【问题描述】:
我想在我的横截面调查数据集中创建一个新列,其中包括女性丈夫的教育。我有家庭 (hid) 和个人 (HL1) 的 ID,以及以下信息:
- MA1== 女性是否已婚(数据仅适用于女性)
- MA2== 丈夫的年龄(数据仅适用于已婚女性)
- HL4== 性别(所有个人均可观察到的数据)
- HL6== 年龄(所有个人均可观察到的数据)
- ED4A== 最高教育水平(所有个人均可观察到数据)
本质上,我想创建代码来执行以下操作:
- 先看老婆目前是否已婚(MA1)
- 如果是,请查看丈夫的年龄 (MA2)
- 然后将丈夫年龄 (MA2) 与家庭男性年龄 (HL6) 配对
- 然后查看该男性的教育程度 (ED4A) 并将该教育程度放入新列中,但与女性的行号位于同一行。
我试过了,但它不起作用:
bysort hid (HL6) : gen husb_educ = ED4A[MA2]
以下是数据集中的示例:
+-----+----------+-----+-----+--------+-----+----------+
| HL1 | MA1 | MA2 | hid | HL4 | HL6 | ED4A |
+-----+----------+-----+-----+--------+-----+----------+
| 1 | | | 106 | Male | 57 | Diploma |
| 2 | | | 106 | Female | 53 | Intermed |
| 3 | | | 106 | Male | 30 | Higher S |
| 4 | No, not | | 106 | Female | 24 | Bachelor |
| 5 | | | 106 | Male | 22 | Diploma |
| 6 | | | 106 | Male | 17 | Secondar |
| 7 | | | 106 | Female | 10 | Primary |
| 8 | Yes, cur | 22 | 106 | Female | 23 | Diploma |
| 9 | | | 106 | Female | 0 | |
+-----+----------+-----+-----+--------+-----+----------+
所以在这个例子中,我想要一个新列,上面写着丈夫的教育,在第 8 行,将 Diploma 作为新列中的值(因为女性的丈夫是 22 岁,男性是 22 岁)有文凭)。
相同的样本,没有值标签:
+-----+-----+-----+-----+-----+-----+------+
| HL1 | MA1 | MA2 | hid | HL4 | HL6 | ED4A |
+-----+-----+-----+-----+-----+-----+------+
| 1 | | | 106 | 1 | 57 | 4 |
| 2 | | | 106 | 2 | 53 | 2 |
| 3 | | | 106 | 1 | 30 | 6 |
| 4 | 3 | | 106 | 2 | 24 | 5 |
| 5 | | | 106 | 1 | 22 | 4 |
| 6 | | | 106 | 1 | 17 | 3 |
| 7 | | | 106 | 2 | 10 | 1 |
| 8 | 1 | 22 | 106 | 2 | 23 | 4 |
| 9 | | | 106 | 2 | 0 | |
+-----+-----+-----+-----+-----+-----+------+
一个特别大的家庭:
input
HL1 MA1 MA2 hid HL4 HL6 ED4A
1 . . 365809 1 33 1
2 1 33 365809 2 26 1
1 . . 365810 1 58 1
2 . . 365810 2 54 .
3 . . 365810 1 23 3
4 . . 365810 1 23 2
5 . . 365810 1 18 3
6 . . 365810 1 15 2
7 . . 365810 2 12 2
8 . . 365810 1 33 3
9 1 dk 365810 2 31 1
10 . . 365810 2 13 2
11 . . 365810 2 11 1
12 . . 365810 1 9 1
13 . . 365810 1 6 1
14 . . 365810 2 3 .
15 . . 365810 1 2 .
16 . . 365810 1 33 3
17 1 33 365810 2 30 1
18 . . 365810 1 8 1
19 . . 365810 2 6 1
20 . . 365810 2 5 .
21 . . 365810 1 1 .
22 . . 365810 1 32 4
23 1 32 365810 2 30 1
24 . . 365810 1 5 .
25 . . 365810 2 3 .
26 . . 365810 1 2 .
27 . . 365810 1 30 4
28 1 30 365810 2 28 1
29 . . 365810 2 2 .
30 . . 365810 1 0 .
31 . . 365810 1 27 2
32 1 27 365810 2 27 1
33 . . 365810 2 2 .
34 . . 365810 2 0 .
end
【问题讨论】:
-
假设丈夫 42 岁。那么您在当前家庭中请求
ED4A[42]。这通常会丢失,这不是您想要的。 -
给我们一个真实数据的小样本。请不要让我们想象您的数据或编造我们自己的例子。
-
您好,感谢您的回复。在这个数据集中,ED4A 是指个人在其一生中所获得的最高教育水平(大多数成年人无论如何都会完成他们的教育)。因此对于 42 岁的人来说,ED4A 可能是中等教育、文凭或缺失,例如。如果我不清楚,请道歉。
-
显然是我不够清楚。我要求你在你的问题中给我们真实的数据。定义不是问题。
-
我已经完成了请求。
标签: stata