楼主: 马子禄
5352 2

[面板数据求助] 急!!!stata中如何进行两个数据点间条件赋值 [推广有奖]

  • 0关注
  • 0粉丝

VIP1

小学生

0%

还不是VIP/贵宾

-

威望
0
论坛币
2300 个
通用积分
0
学术水平
5 点
热心指数
0 点
信用等级
0 点
经验
33 点
帖子
2
精华
0
在线时间
5 小时
注册时间
2012-10-8
最后登录
2015-5-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我要使用CHNS数据研究个体自己认识到的健康信息对其吸烟概率的影响。但是显然,这里面有内生性。因此,我打算使用个体家人的健康信息作为其自身健康信息的工具变量。由于调查问卷中没有直接询问家人的健康情况,因此,需要通过ID之间的关系,来间接得到这一变量。我本来希望通过本人的id与父亲的id(id_f)的联系来生成这一变量,即先看个体a的父亲id是多少,若其父亲id是b,再在数据中找到个体b,将其健康信息赋予个体a的家人健康信息这一变量。然而操作中,我发现stata程序的设计似乎不支持这一操作。我已在这上面花了很多时间,但是因为stata中的循环命令都是默认完全针对一个数据点进行操作,而难以进行跨数据点的赋值。如以下程序得不到结果:

gen health_f=.
foreach x in id{
   foreach y in id_f{
      replace health_f=health if `y'==x`'  **这里的本意是,用两个层面的循环嵌套,先固定住id,再在id_f中找和id相等的个体,把其health作为id_f的health_f赋进去。然而,stata解读的结果,是对同一个个体,只有其id与id_f相等(即此人就是自己的父亲,这样的样本点共29个,疑似是统计时出现差错的数据)时,才执行此操作。**
   }
}


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata tata foreach replace stata程序 如何

已有 1 人评分学术水平 收起 理由
offandon + 5 精彩帖子

总评分: 学术水平 + 5   查看全部评分

沙发
offandon 发表于 2015-5-2 09:18:05 |只看作者 |坛友微信交流群
期待答案……

使用道具

藤椅
offandon 发表于 2015-5-2 09:26:06 |只看作者 |坛友微信交流群
楼主要是怎么解决后,一定要告诉大家。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 04:55