请选择 进入手机版 | 继续访问电脑版
楼主: xgdl2010
54432 18

[面板数据求助] stata面板数据如何生成一个新变量使其等于另一个变量某一年固定年份的值 [推广有奖]

  • 1关注
  • 2粉丝

讲师

36%

还不是VIP/贵宾

-

威望
0
论坛币
1533 个
通用积分
96.8546
学术水平
1 点
热心指数
1 点
信用等级
3 点
经验
1231 点
帖子
96
精华
0
在线时间
831 小时
注册时间
2010-5-29
最后登录
2024-3-13

xgdl2010 发表于 2014-5-25 11:30:20 |显示全部楼层 |坛友微信交流群
3论坛币
如题,现有如下结构的数据(前三列),我想生成个新变量(第四列),使得该变量的值等于每个个体2009年的owner的值,stata命令是什么,多谢!!
yearidowner

2005

1

172

172

2006

1

172

172

2007

1

172

172

2008

1

172

172

2009

1

172

172

2005

2

173

173

2006

2

173

173

2007

2

173

173

2008

2

173

173

2009

2

173

173

2005

3

230

210

2006

3

210

210

2007

3

210

210

2008

3

210

210

2009

3

210

210

2005

4

173

173

2006

4

173

173

2007

4

173

173

2008

4

173

173

2009

4

173

173

2005

5

173

173

2006

5

173

173

2007

5

173

173

2008

5

173

173

2009

5

173

173

2005

6

159

173

2006

6

159

173

2007

6

159

173

2008

6

173

173

2009

6

173

173



关键词:stata面板数据 STATA面板 Stata tata 面板数据 如何
ywh19860616 发表于 2014-5-25 11:30:21 |显示全部楼层 |坛友微信交流群
  1. clear
  2. input year id owner
  3. 2005 1 172
  4. 2006 1 172
  5. 2007 1 172
  6. 2008 1 172
  7. 2005 2 172
  8. 2006 2 172
  9. 2007 2 172
  10. 2008 2 173
  11. 2005 3 172
  12. 2006 3 172
  13. 2007 3 172
  14. 2008 3 174
  15. end

  16. gen owner2=.
  17. bys id (year):replace owner2=owner[_N]
复制代码
已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
娜夙夏 + 1 + 1 + 1 精彩帖子
gengls + 3 + 2 对论坛有贡献
Yon0606 + 1 + 1 + 1 + 1 精彩帖子
crystal8832 + 10 + 10 + 1 + 1 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 11  学术水平 + 6  热心指数 + 5  信用等级 + 2   查看全部评分

一份耕耘,一份收获。

使用道具

lemonwp 发表于 2014-5-25 11:49:16 |显示全部楼层 |坛友微信交流群
假设你原始的数据名为data1,产生的新变量名为newvar,则通过下面语句可以实现:
use data1,clear
keep if year==2009
keep id owner
rename owner newvar
merge 1:m id using "D:\stata_data\data1.dta"
sort id year
drop _merge
save data1,replace
已有 1 人评分经验 论坛币 学术水平 热心指数 收起 理由
crystal8832 + 10 + 10 + 1 + 1 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

ywh19860616 发表于 2014-5-25 11:56:53 |显示全部楼层 |坛友微信交流群
lemonwp 发表于 2014-5-25 11:49
假设你原始的数据名为data1,产生的新变量名为newvar,则通过下面语句可以实现:
use data1,clear
keep if ...
:) 道路曲折,目的一样。有点好奇怎么开始不是想到sort。
一份耕耘,一份收获。

使用道具

lemonwp 发表于 2014-5-25 19:39:48 |显示全部楼层 |坛友微信交流群
ywh19860616 发表于 2014-5-25 11:56
:) 道路曲折,目的一样。有点好奇怎么开始不是想到sort。
你这个很快捷,不过应该是:bys id :replace owner2=owner[_N]这样吧?

使用道具

lemonwp 发表于 2014-5-25 19:42:16 |显示全部楼层 |坛友微信交流群
lemonwp 发表于 2014-5-25 19:39
你这个很快捷,不过应该是:bys id :replace owner2=owner[_N]这样吧?
bys id (year) :replace owner2=owner[_N] 你这种用法学习了@ywh19860616。把year括起来,只是排序不分类?即还是by id 生成新值。

使用道具

LingHu 发表于 2014-5-30 14:09:34 |显示全部楼层 |坛友微信交流群
不用keep再merge吧,直接gen ... if year==2009,再用上述replace就可以了

使用道具

yuguowusheng 发表于 2014-9-29 11:14:38 |显示全部楼层 |坛友微信交流群
id        year        c14
1        1998        4050
1        1999        16840
1        2000        16840
2        1998        3720
2        1999        4970
9        1999        0
9        2000        4200
9        2001        2360
9        2006        6300
9        2007        4680
9        2008        7262
10        2000        16749
14        1998        43853
14        1999        40981
14        2000        41897
14        2001        39656
14        2002        37829
14        2003        34312
17        2002        6590
17        2003        11250
17        2004        14630
17        2005        16550
17        2006        23230
17        2007        28950
17        2008        21810
数据如上,我想生成一个新的变量,数值等于每个个体初始年份的数值,比如个体1是4050,个体2是3720,个体9是0……个体17是34312。与楼主的问题区别在于,他问的是终止年份的数值,且是平衡面板。O(∩_∩)O谢谢……

使用道具

ywh19860616 发表于 2014-9-29 11:21:09 |显示全部楼层 |坛友微信交流群
yuguowusheng 发表于 2014-9-29 11:14
id        year        c14
1        1998        4050
1        1999        16840
  1. clear
  2. input year id owner
  3. 2005 1 1
  4. 2006 1 172
  5. 2007 1 172
  6. 2008 1 172
  7. 2005 2 3
  8. 2006 2 172
  9. 2007 2 172
  10. 2008 2 173
  11. 2005 3 5
  12. 2006 3 172
  13. end

  14. gen owner2=.
  15. bys id (year):replace owner2=owner[1]
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
txje + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

yuguowusheng 发表于 2014-9-29 12:10:01 |显示全部楼层 |坛友微信交流群
ywh19860616 发表于 2014-9-29 11:21
谢谢大神,哈哈,我发完帖子马上就试出来了,原来这么基础和simple~

使用道具

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

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

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

GMT+8, 2024-3-30 13:33