全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
8056 9
2011-02-07
各位请帮忙,我用local命令,用disp显示结果,监控程序运行进程,但是因为是两次循环,所以需要同时显示两个变量,然后用
display `m'""`i'    语句,但是stata显示1""1 invalid name
请各位帮忙啦~谢谢!我用的是stata10,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-2-7 22:04:28
出错了。。。
二维码

扫码加我 拉你入群

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

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

2011-2-7 23:42:43
sandylucky2008 发表于 2011-2-7 21:59
各位请帮忙,我用local命令,用disp显示结果,监控程序运行进程,但是因为是两次循环,所以需要同时显示两个变量,然后用
display `m'""`i'    语句,但是stata显示1""1 invalid name
请各位帮忙啦~谢谢!我用的是stata10,谢谢!
display `m' " " `i'
二维码

扫码加我 拉你入群

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

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

2011-2-8 20:26:30
谢谢大家的帮助!但是我用楼上版主的那个语句试了一下还是不行,运行仍然出错。会不会是其他地方出错了,下面是我用的代码,希望大家能帮忙看看!感激涕零!
clear
set mem 600m
set more off
set matsize 400
use C:\Users\l\Desktop\stata\event02.dta, clear

forval i =1(1) 3 {
mkmat stkcd Trddt event0 if _n<=400, mat(event`i')
drop if _n<=400
}
drop _all
use C:\Users\l\Desktop\stata\hebingnew2.dta
forval i = 1(1) 2 {
preserve
keep if stkcd >=scalar(event`i'[1,1]) & stkcd < = scalar(event`i'[400,1])
save C:\Users\l\Desktop\stata\hebingnew2_`i',replace
restore
}
keep if stkcd > = scalar(event3[1,1]) & stkcd < = scalar(event3[265,1])
save C:\Users\l\Desktop\stata\hebingnew2_3,replace
forval m = 1(1) 3 {
local NUM = 400
if `m'==3{
local NUM = 265
}
use C:\Users\l\Desktop\stata\hebingnew2_`m',clear
sort Trddt
merge Trddt using C:\Users\l\Desktop\stata\index1,nokeep
drop _m
keep stkcd Trddt prcchgeper return
replace prcchgeper =. if prcchgeper>10.2
replace prcchgeper =. if prcchgeper<-10.2
replace prcchgeper = prcchgeper/100
replace return = return/100
forval i = 1(1)`NUM'{
disp `m'""`i'                     *运行的时候应该是这里有问题,显示1 “” 1 invalid name
qui drop if stkcd < scalar(event `m'[`i',1])
qui outsheet using C:\Users\l\Desktop\stata\before_event_`i'.txt if
stkcd ==scalar(event `m'[`i',1]) & Trddt > = scalar (event `m'[`i',2]) -200 & Trddt<scalar(event `m'[`i',2]),replace
qui outsheet using C:\Users\l\Desktop\stata\after_event_`i'.txt if stkcd == scalar (event`m'[`i',1]) & Trddt < = scalar(event`m'[`i',2])+30 & Trddt > = scalar (event `m'[`i',2]),replace
}
drop _all
forval i = 1(1)`NUM'{
insheet using C:\Users\l\Desktop\stata\before_event_`i'.txt,clear
save C:\Users\l\Desktop\stata\before _event_`i',replace
insheet using C:\Users\l\Desktop\stata\after _event _`i'.txt, clear
save C:\Users\l\Desktop\stata\after_event _`i', replace
erase C:\Users\l\Desktop\stata\before_event _`i'.txt
erase C:\Users\l\Desktop\stata\after_event _`i'.txt
}
drop _all
local j = 0
forval i = 1(1) `NUM' {
use C:\Users\l\Desktop\stata\before _event _`i',clear
gen reg_sample=1 if _n<_N-31
sum prcchgeper if reg_sample
local reg_sample = r(N)
if `reg_sample' <40 {
continue
}
append using C:\Users\l\Desktop\stata\after _event_`i'
reg prcchgeper return if reg_sample==1
predict abn_return if trddt > = scalar (event`m'[`i',2])-30,r
keep if abn_return ~ =.
keep  _all
if _N<30 {
continue
}
local j = `j'+1
keep stkcd trddt abn_return
gen event = `j'
gen event0 = scalar(event `m'[`i',3])
sort trddt
gen time =_n-30
save C:\Users\l\Desktop\stata\event_`j', replace
erase C:\Users\l\Desktop\stata\before_event_`i'.dta
eraseC:\Users\l\Desktop\stata\after_event_`i'.dta
}
drop _all
use C:\Users\l\Desktop\stata\event_1
forval i = 2(1) `j'{
append using C:\Users\l\Desktop\stata\event _`i'
}
sore event time
save C:\Users\l\Desktop\stata\event_set`m', replace
}
clear
set more off
use C:\Users\l\Desktop\stata\event _set1.dta, clear
#delimit ;
foreach file in event_set2.dta
event_set3.dta
{;
sum event ;
local i = r(max);
gen temp = event ;
append using C:\Users\l\Desktop\stata\`file' ;
replace temp = event +`i' if temp ==.;
drop event ;
rename temp event ;
};
#delimit cr
sort event0
merge event0 using C:\Users\l\Desktop\stata\event2, nokeep
drop _m
sort event time
by event:gen CAR =sum(abn_return)
sort time
by time:egen CAR_mean = mean(CAR)
twoway line CAR time
twoway line CAR_mean time
sort event time
save C:\Users\l\Desktop,replace

再次感谢啦!
二维码

扫码加我 拉你入群

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

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

2011-2-8 20:59:10
sandylucky2008 发表于 2011-2-8 20:26 disp `m'""`i'                     *运行的时候应该是这里有问题,显示1 “” 1 invalid name
请注意我写的与你写的之间的区别。
二维码

扫码加我 拉你入群

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

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

2011-2-9 19:35:08
嗯嗯,我注意了,我把你写的复制粘贴到我的代码里替换了原来的那个,然后出现的是 invalid syntax ,所以我把我的整个代码都post出来了~不知道是哪里错啦~谢谢你啦~希望您能再次指点~谢谢~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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