楼主: kusoft
2955 7

[数据管理求助] 人期数据中,如何让一个变量在相同ID的不同年份中取同一值 [推广有奖]

  • 0关注
  • 0粉丝

本科生

13%

还不是VIP/贵宾

-

威望
0
论坛币
143 个
通用积分
0.0137
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
597 点
帖子
44
精华
0
在线时间
82 小时
注册时间
2008-5-24
最后登录
2022-6-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如有下面的情况:

ID       year       gender
1         2000        .
1         2002        1
1         2004        .
2         2000        .
2         2002        .
2         2004        2


就是说,一个人的gender只填写过一次,而且不一定是在第一次被调查时填写的。我如何用stata让数据变为下面的样子:

ID       year       gender
1         2000        1
1         2002        1
1         2004        1
2         2000        2
2         2002        2
2         2004        2




二维码

扫码加我 拉你入群

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

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

关键词:Gender Stata year tata End 如何 而且

回帖推荐

蓝色 发表于3楼  查看完整内容

bysort ID: egen new_gender=mean(gender)
沙发
ywh19860616 发表于 2014-2-22 14:08:25 |只看作者 |坛友微信交流群
  1. bysort id (gender):replace gender=gender[1] if gender==.
复制代码
一份耕耘,一份收获。

使用道具

藤椅
蓝色 发表于 2014-2-22 16:01:57 |只看作者 |坛友微信交流群
bysort  ID: egen new_gender=mean(gender)

使用道具

板凳
kusoft 发表于 2014-2-22 21:39:15 |只看作者 |坛友微信交流群
蓝色 发表于 2014-2-22 16:01
bysort  ID: egen new_gender=mean(gender)
还有一种情况:
ID    year     age
1      2000     .
1      2004    68
1      2006     .

怎么通过2004年的年龄把2000年和2006年的年龄补上,如果这个case在2000和2006年在其他变量上是有数据的?

使用道具

报纸
蓝色 发表于 2014-2-22 21:42:10 |只看作者 |坛友微信交流群
上面两种命令都是可以解决你的问题的啊
你执行就可以看到结果啊

使用道具

地板
蓝色 发表于 2014-2-22 21:43:39 |只看作者 |坛友微信交流群
. clear

. input ///
> ID       year       gender

            ID       year     gender
  1. 1         2000        .
  2. 1         2002        1
  3. 1         2004        .
  4. 2         2000        .
  5. 2         2002        .
  6. 2         2004        2
  7. end

.
. bysort ID : egen new_gender=mean(gender)

.
.
. bysort ID (gender):replace gender=gender[1] if gender==.
(4 real changes made)

. list

     +-------------------------------+
     | ID   year   gender   new_ge~r |
     |-------------------------------|
  1. |  1   2002        1          1 |
  2. |  1   2004        1          1 |
  3. |  1   2000        1          1 |
  4. |  2   2004        2          2 |
  5. |  2   2000        2          2 |
     |-------------------------------|
  6. |  2   2002        2          2 |
     +-------------------------------+


使用道具

7
kusoft 发表于 2014-2-22 21:58:34 |只看作者 |坛友微信交流群
蓝色 发表于 2014-2-22 21:43
. clear

. input ///
gender的问题已经解决,非常感谢:)
第二个问题是关于age的,不同之处在于,gender不变,而age会随着year变化的,这样的话应该怎么办呢?

使用道具

8
kusoft 发表于 2014-2-22 21:59:22 |只看作者 |坛友微信交流群
kusoft 发表于 2014-2-22 21:58
gender的问题已经解决,非常感谢:)
第二个问题是关于age的,不同之处在于,gender不变,而age会随着ye ...
ID    year     age
1      2000     .
1      2004    68
1      2006     .

怎么通过2004年的年龄把2000年和2006年的年龄补上,如果这个case在2000和2006年在其他变量上是有数据的?

使用道具

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

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

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

GMT+8, 2024-5-11 02:04