【发布时间】:2017-03-01 01:44:18
【问题描述】:
我有一个关于不同家庭的数据集。每个家庭都有不同的个体。我想为特定变量输入一个条目(个人)并将其应用于整个家庭。最后,我想对家庭数据进行回归并忽略个人。例如:
家庭身份证 |个人身份证 |变量 1
H1 | A1 |a
H1 | A2 | .
H1 | A3 |一个
H1 | A4 |一个
H2 | A1 |乙
H2 | A2 | .
H3 | A1 |乙
H3 | A2 |一个
H3 | A3 | .
H3 | A4 |一个
H3 | A5 | .
H3 | A6 | .
我想在哪里创建一个数据:
家庭 id 变量 1
H1 |一个
H2 |乙
H3 |乙
[编辑:可以通过 egen 来完成。我试图通过嵌套循环来处理它。
> foreach h in household_id{
> local d = 0
> local e = 0
> foreach i in individual_id{
> replace `d' = 1 if var1 == 1
> replace `e' = 2 if var1 == 2
> }
> foreach i in individual_id{
> replace a = 1 if `d' == 1
> replace a = 2 if `e' == 2
> }
> }
这里的 a 是另一个变量,我将直接用它来替换 var1。代码报错:
0 invalid name
我的代码需要进行哪些更正?我对本地宏的使用是否存在根本缺陷?使用 tempvar 也没有帮助。
【问题讨论】:
-
SO 不是我们为您编写代码的代码编写服务。请在尝试编写代码时付出一些努力。
-
help bysort和help egen可能是很好的第一步 -
@Eric egen 有效。谢谢您的帮助。我一直在尝试使用嵌套循环;但是,我仍在为生成的局部变量而苦苦挣扎。
-
很高兴您正在编写代码。但是你需要展示它是什么让 cmets 上它!
-
@NickCox 很抱歉没有早点这样做。我是 Stackoverflow 的新手。我已经添加了代码。请看一看。