问题描述
示例: 一个家庭有3个兄弟姐妹。如果孩子与其他兄弟姐妹之一共用一位母亲,则不会向该母亲的第二个孩子询问与母亲有关的问题。
然后我如何将母亲的第一个孩子的答案复制到第二个孩子?下图
例如,在家庭 1112 中,由于孩子 3 与孩子 2 共用一个母亲,因此他们没有被问及母亲的工作或母亲的年龄。
9998 反映系统缺失数据(问题被跳过)
如何将这些变量的响应复制到孩子 3?
解决方法
这是一种非常奇怪的记录数据的方式——有没有办法在源头上改变它?应该有一个单独的母亲详细信息表,儿童表和母亲表通过母亲ID连接。
但是 - 鉴于当前形式的数据 - 这就是我的想法:以下代码将创建原始表的副本并将其与自身匹配,同时连接 child number
列中的数字和bio_mother
列。
首先,我重新创建了一些示例数据以进行演示:
data list list/HHID childnumber biomother mother_age (4f6) mother_job (a20).
begin data
112 1 99998 25 "unemployed"
112 2 0 33 "nurse"
112 3 2 99998 "99998"
116 1 99998 25 "domestic worker"
116 2 1 99998 "99998"
116 3 0 28 "sales assistant"
116 4 3 99998 "99998"
end data.
dataset name orig.
现在开始工作:
dataset copy tab2.
dataset activate tab2.
delete vars biomother.
rename vars childnumber=biomother mother_age=Xmother_age mother_job=Xmother_job.
sort cases by HHID biomother .
dataset act orig.
sort cases by HHID biomother.
match files /file=* /tab=tab2/by HHID biomother .
exe.
现在我们在正确的行中有数据,最后一步是将其复制到正确的列中。
if mother_age=99998 mother_age=Xmother_age.
if mother_job="99998" mother_job=Xmother_job.
exe.