全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
10699 5
2015-04-12
悬赏 10 个论坛币 未解决
主要变量包括国家,年份和收入,我希望生成另一个变量叫做初始收入,使这个变量1950年到1959年这十年间的数值等于一个国家1950年的收入,1960年到1969年的数值等于该国1960年的收入,以此类推。大概应该是像下面这样:

country  year  income  income1
1           1950   100      100
1           1951   102      100
.........
1           1959   113      100
1           1960   115      115
1           1961   117      115
.........
1           1969   130      115
2           1950    98        98
2           1951   101       98
.........
2           1959   109       98
2           1960   114      114
2           1961   119      114
.........
2           1969   131      114
这里只列举了两个国家,income1是我希望生成的新变量。其实就是希望income1在1950到1959之间等于1950年的income,在1960到1969年间等于1960年的income,我尝试了用这个命令:
gen income1=.   
bysort country: replace income1=income if year=1950
但是得到了报错,感觉第二个语法不对。还望高手指点迷津,非常感激!



二维码

扫码加我 拉你入群

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

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

全部回复
2015-4-12 13:16:44
楼主,您好,用bysort和gen连用即可哦~~

附例子代码:
复制代码
二维码

扫码加我 拉你入群

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

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

2015-4-12 14:30:04
如果间隔是规则的,比如你这里都是10年,只需要把我下面命令的3修改为10
如果是不规则的,再做讨论
复制代码
二维码

扫码加我 拉你入群

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

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

2015-4-12 19:24:34
SpencerMeng 发表于 2015-4-12 13:16
楼主,您好,用bysort和gen连用即可哦~~

附例子代码:
实际处理的数据是个不平衡的面板,不是每个国家都刚好从1950年开始,所以需要确切地指出是1950年的income,而无法用income[1]这样的命令。
二维码

扫码加我 拉你入群

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

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

2015-4-12 19:28:36
ywh19860616 发表于 2015-4-12 14:30
如果间隔是规则的,比如你这里都是10年,只需要把我下面命令的3修改为10
如果是不规则的,再做讨论
问题是实际的数据是非平衡面板,不是每个国家都从1950年开始,所以好像需要确切地让1950年以后十年的income1等于1950年的income,让1960年以后十年的income1等于1960年的income,请问这样应该怎么做呢?
二维码

扫码加我 拉你入群

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

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

2015-4-12 21:11:40
Winnis 发表于 2015-4-12 19:28
问题是实际的数据是非平衡面板,不是每个国家都从1950年开始,所以好像需要确切地让1950年以后十年的inco ...
提供dta数据吧,或者你自己模拟下数据,上传供大家参考。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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