楼主: daishuai01
1274 3

[Stata高级班] 请教连老师关于循环语句 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

17%

还不是VIP/贵宾

-

威望
0
论坛币
1323 个
通用积分
0.8823
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
1888 点
帖子
105
精华
0
在线时间
170 小时
注册时间
2009-4-1
最后登录
2023-12-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
想要实现:从32个序列,即x1,x2...x32中任意选两个做格兰杰因果检验并记录结果。试过foreach,没能如愿。请老师指点。我的语句
global vars "x1 x2 x3 x5 x6 x7 x8 x9 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32"
foreach v of varlist $vars{
  gcause `v' `v'+1, lags(40)
}
   
foreach num of numlist 1/32{
  gcause x`num', x`num++', lags(40)
  }



二维码

扫码加我 拉你入群

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

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

关键词:循环语句 连老师 foreach 格兰杰因果检验 varlist

最好的选择就是努力向上~
沙发
daishuai01 发表于 2013-11-5 07:33:07 |只看作者 |坛友微信交流群
我又回头仔细看了视频,参照连老师初级课件5.7.2中的程序,仅以x1-x3为例,程序如下
mat aa = J(9,6,0)
forvalues j = 1/3 {
   forvalues i = 1/3 {
     gcause x`j' x`i',lags(40)
         mat aa[`i',1] = (`i', `j', r(F), r(p), r(F_a), r(p_a))
         }
           }
存储返回值还是有问题,老师课上提出的asum.ado程序的第三个缺陷:只能返回最后一个变量的计算结果还是无法克服。请问老师有什么解决办法?
最好的选择就是努力向上~

使用道具

藤椅
daishuai01 发表于 2013-11-6 02:12:47 |只看作者 |坛友微信交流群
问题已解决。还是谢谢老师。分享一下,关于30个变量两两进行格兰杰因果检验并存储结果的代码
forvalues j = 1/30 {
   mat aa`j' = J(30,6,0)
   forvalues i = 1/30 {
    qui gcause x`j' x`i',lags(40)
         mat aa`j'[`i',1] = (`i', `j', r(F), r(p), r(F_a), r(p_a))
                 }
           }   
最好的选择就是努力向上~

使用道具

板凳
arlionn 在职认证  发表于 2013-11-7 08:49:29 |只看作者 |坛友微信交流群
超级乌龙,呵呵。不错。

使用道具

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

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

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

GMT+8, 2024-4-26 18:22