全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
6772 5
2016-02-15
原始数据为
idyeartreat

1

1995

1

1996

1

1997

1

1998

1

1999

1

2000

3

1

2001

1

2002

1

2003

2

1995

2

1996

2

1997

2

1998

2

1999

2

2000

2

2

2001

2

2002

2

2003



我想将第三列填充为

idyeartreat

1

1995

-2

1

1996

-1

1

1997

0

1

1998

1

1

1999

2

1

2000

3

1

2001

4

1

2002

5

1

2003

6

2

1995

-3

2

1996

-2

2

1997

-1

2

1998

0

2

1999

1

2

2000

2

2

2001

3

2

2002

4

2

2003

5



如何系统地填充?
二维码

扫码加我 拉你入群

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

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

全部回复
2016-2-15 20:40:39
drop treat
bysort id: gen treat=year-1997
replace treat=treat-id+1





二维码

扫码加我 拉你入群

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

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

2016-2-16 17:16:09
感谢楼上的朋友,假如我不知道treat变量中2,3的位置,或者说其取值可能是7,8,我想在id=i的样本中,以未缺失的值,向两端填充~
二维码

扫码加我 拉你入群

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

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

2016-2-16 17:18:26
楼上朋友给的是一种特例解法~
二维码

扫码加我 拉你入群

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

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

2016-2-16 19:45:04
peyzf 发表于 2016-2-16 17:16
感谢楼上的朋友,假如我不知道treat变量中2,3的位置,或者说其取值可能是7,8,我想在id=i的样本中,以未缺 ...
如果是这种情况,感觉不太可能用几句简单的命令得到,因为没有固定的模式,可以试着编一个程序,根据id的编号来循环,每一个循环里面,找出你说的可能是7或8,与之相对应的year(往两端填是一个等差数列,与year相差一个常数),然后用命令gen treat_i=year-XXXX if 条件  来生成treat_i,最后把treat_i汇总起来吧。
二维码

扫码加我 拉你入群

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

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

2016-2-17 20:19:50
感谢楼上的朋友~
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群