楼主: hxy245461
4384 5

[编程问题求助] 【新手求教】stata 如何循环引用全局宏 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
544 个
通用积分
25.7036
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
132 点
帖子
145
精华
0
在线时间
33 小时
注册时间
2020-5-31
最后登录
2024-10-16

楼主
hxy245461 发表于 2021-3-1 00:13:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
需要循环引用全局宏,简化版代码如下:

global xlist1        X1 X2 X3 X4 X5
global xlist2        X1 X2 X3 X4 X6
global xlist3        X1 X2 X3 X4 X7
//xlist n的组合有几万个,无法逐个操作
forvalues i = 1(1)3 {

  use data.dta ,clear

  xtset id year,delta(1)

  xtreg tobinq d $xlist`i'  i.year , fe
}


执行后会报错:
"i invalid name
r(198);

请问各位大佬,如何正确的循环引用全局宏。
在此放一个sas同类已解决问题的帖子:https://bbs.pinggu.org/thread-2875535-1-1.html
二维码

扫码加我 拉你入群

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

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

关键词:Stata 新手求教 tata forvalues forvalue stata 全局宏 循环 编程 回归

回帖推荐

黃河泉 发表于2楼  查看完整内容

通常,我尽量不用 global 而用 local,请参考

沙发
黃河泉 在职认证  发表于 2021-3-1 10:50:56
通常,我尽量不用 global 而用 local,请参考
  1. webuse grunfeld, clear
  2. xtset company year

  3. local xlist1 "mvalue"
  4. local xlist2 "kstock"
  5. local xlist3 "mvalue kstock"

  6. forvalues i = 1(1)3 {
  7.     xtreg invest `xlist`i'' i.year, fe
  8. }
复制代码

藤椅
hxy245461 发表于 2021-3-1 12:22:58
黃河泉 发表于 2021-3-1 10:50
通常,我尽量不用 global 而用 local,请参考
非常感谢您的回复,受教了!我以后也尽量使用local。
我还想问一下,复制您的代码后,执行到循环处总是提示:“  is not a valid command name” ,请问这个问题如何解决呢?是我操作的问题吗?

板凳
hxy245461 发表于 2021-3-1 13:10:25
黃河泉 发表于 2021-3-1 10:50
通常,我尽量不用 global 而用 local,请参考
感谢!问题已解决,我是的问题,您给的代码完全正确!受教了!

报纸
黃河泉 在职认证  发表于 2021-3-1 16:10:13
hxy245461 发表于 2021-3-1 13:10
感谢!问题已解决,我是的问题,您给的代码完全正确!受教了!
Great to hear that.

地板
渣渣瑞 发表于 2022-4-20 17:30:49
global xlist 这个命令可以在stata13上实现吗?楼住用的哪个版本啊

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-30 18:58