capt prog drop goods
prog goods
scalar x=10+int(20*uniform())
if `l'>= {
scalar z=500*x-100*(`l'-x)
}
else {
scalar z=500*`l'+300*(x-`l')
}
end
set more off
quietly forvalues i=10/30 {
simulate z,rep(1000) nodots:goods `i'
quietly sum
scalar z`i'=r(mean)
}
scalar list
运行提示错误:
>= invalid name
an error occurred when simulate executed goods
r(198);
captu program drop goods
program goods
scalar x=10+int(20*uniform())
if `1'>=x {
scalar z=500*x-100*(`1'-x)
}
else {
scalar z=500*`1'+300*(x-`1')
}
end
set more off
quietly forvalues i=10/30 {
simulate z,rep(1000) nodots: goods `i'
quietly sum
scalar z`i'=r(mean)
}
scalar list
这个是标准的程序,运行正确,仔细看了半天,都没找到两个程序的差别