全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
13949 1
2013-03-29
fyear        dltt            t           delta_LTD
1961        .1                1             0       
1962        0                2             -.1
1963        .015                3            .015
1964        .522          4              .507
...
...
...
1978        0               1               0.5
1979        0               2              0
1980        0               3               0
1981        0               4               0
1982        0               5               0
1983        4.3          6              4.344
1984        4.1          7              -.16
....
...
...
           如上表所示共用4个变量,我的目标是当t=1时生成10个新的变量,例如:
           gen dltt_1= dltt * 0.095,
           gen dltt_2= dltt * 0.076。
           如果按照generate函数的用法,只能是
          gen dltt_1= dltt * 0.095 if t==1,
          gen dltt_2= dltt * 0.076 if t==1
          能不能写成类似循环函数的形式,只需要在开头写一次 t==1的条件,当t==1时就生成这么10个变量?
          我本来试过这么写:
         if t==1{
         gen dltt_1= dltt * 0.095
         gen dltt_2= dltt * 0.076
         ...
         }
         else{
         ...
         }
        但是这么写却结果完全不对,好像只是对第一行的t值做了判断。
        所以想问下论坛的朋友们有什么更加简洁的写法吗?

二维码

扫码加我 拉你入群

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

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

全部回复
2014-9-30 10:07:17
matrix a=(0.095,0.076,....)
if t==1{
forvalues i=1/10 {
gen dltt_`i'= dltt *a(1,`i')
         }
        
         }
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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