全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5930 8
2018-04-29
求助各位大神两个关于循环语句的问题:
(1)像下面这样的依次递增变量个数的累加,能否用循环语句实现呢?
egen f_2000 = rowtotal(rela_2000)
egen f_2001 = rowtotal(rela_2000 rela_2001)
egen f_2002 = rowtotal(rela_2000 rela_2001 rela_2002)
egen f_2003 = rowtotal(rela_2000 rela_2001 rela_2002 rela_2003)
egen f_2004 = rowtotal(rela_2000 rela_2001 rela_2002 rela_2003 rela_2004)

...

(2)像下面这个例子:每个allrela_20xx.dta里面有关于其前一年变量,需要统一改名称:
use allrela_2001.dta
rename rela_2000 rela_qian
save allrela_2001,replace

use allrela_2002.dta
rename rela_2001 rela_qian
save allrela_2002,replace

use allrela_2003.dta
rename rela_2002 rela_qian
save allrela_2003,replace
...

我的代码是:
forvalues i=2001/2013{
  use allrela_`i'.dta
  rename rela_`i-1' rela_qian
  save allrela_`i',replace
}
但是结果出不来,想问问`i-1'这个用法是不是错的?加入j=i-1似乎也不可行

二维码

扫码加我 拉你入群

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

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

全部回复
2018-4-29 20:21:09
上传问题(1)的实验样本:
复制代码

二维码

扫码加我 拉你入群

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

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

2018-4-29 20:32:15
你试试
forvalues i=2001/2013{
preserve
  use allrela_`i'.dta
  rename rela_`i-1' rela_qian
  save allrela_`i',replace
restore
}
二维码

扫码加我 拉你入群

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

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

2018-4-29 21:12:18
a76594734 发表于 2018-4-29 20:32
你试试
forvalues i=2001/2013{
preserve
还是不行诶,stata是直接将`i-1'识别成`i'去处理的
二维码

扫码加我 拉你入群

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

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

2018-4-29 21:19:40
问题(2)的实验数据(自动生成3个dta文件):
复制代码
二维码

扫码加我 拉你入群

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

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

2018-4-29 21:49:36
复制代码


二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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