楼主: may05lzu
7509 9

请教一个stata循环问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:548份资源

博士生

78%

还不是VIP/贵宾

-

威望
0
论坛币
375 个
通用积分
4.7700
学术水平
2 点
热心指数
4 点
信用等级
1 点
经验
1850 点
帖子
193
精华
0
在线时间
368 小时
注册时间
2009-9-19
最后登录
2025-9-27

楼主
may05lzu 发表于 2012-4-7 09:28:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我的数据有中两个变量代码(stkcd)、年度(year),需要对每一个行业和每个年度做一次回归,并保留r2。我的程序如下:
gen r2=.
foreach i of stkcd {
foreach v of year {
reg dretwd cdretwdtl cdretwdtl_1 industryreturn industryreturn_1 if stkcd==`i'  &  year==`v'
replace r2=e(r2)  if stkcd==`i' & year==`v'
}
}
但是出现invalid syntax的错误。不知道怎么回事?stkcd和year都是数值型。谢谢了。
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata Industry foreach invalid 数据 invalid amp replace 程序

奋斗!在奋斗!再奋斗!

沙发
may05lzu 发表于 2012-4-7 11:06:26
在线等。
奋斗!在奋斗!再奋斗!

藤椅
sungmoo 发表于 2012-4-7 11:28:08
没有“foreach of 变量”这种用法

板凳
may05lzu 发表于 2012-4-7 14:01:32
sungmoo 发表于 2012-4-7 11:28
没有“foreach of 变量”这种用法
请问这个应该怎么改呢,谢谢了哈!
奋斗!在奋斗!再奋斗!

报纸
sungmoo 发表于 2012-4-7 14:39:14

地板
may05lzu 发表于 2012-4-7 16:28:11
sungmoo 发表于 2012-4-7 14:39
参见
https://bbs.pinggu.org/thread-1090113-1-1.html
谢谢。我修改了一下:
gen r2=.
forvalue i=1/900957 {
forvalue v=2003/2010 {
reg  dretwd  cdretwdtl cdretwdtl_1 industryreturn industryreturn_1 if stkcd==`i' & year==`v'
replace r2=e(r2) if stkcd==`i'  &  year==`v'
}
}
但是遇到一个问题是:stkcd并不是连续的,中间有间断;对每一个stkcd而言,year也不都是从2003至2010,就导致在会出现no observations而中断程序的现象,请问这如何解决呢?
奋斗!在奋斗!再奋斗!

7
309 在职认证  发表于 2012-4-7 21:56:44
对股票代码生成连续的编码
egen g=group(stkcd)
qui sum g
local max=r(max)
forval i=1(1)`max'{
………………

8
may05lzu 发表于 2012-4-8 08:10:54
309 发表于 2012-4-7 21:56
对股票代码生成连续的编码
egen g=group(stkcd)
qui sum g
谢谢。第一个问题解决了,但并不是每一个stkcd并不是都从2003-2010年,所以还是会出现no observations的问题。请问这个怎么解决啊?多谢了。
奋斗!在奋斗!再奋斗!

9
309 在职认证  发表于 2012-4-8 12:09:10
方法一样

10
may05lzu 发表于 2012-4-9 09:23:35
309 发表于 2012-4-8 12:09
方法一样
多谢。
奋斗!在奋斗!再奋斗!

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

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