全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5643 10
2012-05-26
悬赏 50 个论坛币 未解决
正式发表版
在运行一个stata宏循环程序时,出现“__000001 not found”的错误提示,也找了各种方法来解决,但仍无果,希望坛友能帮忙,在线等待。
二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-26 20:15:48
在线请高人指点。
二维码

扫码加我 拉你入群

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

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

2012-5-26 21:36:15
为什么不把你的命令写出来呢?
二维码

扫码加我 拉你入群

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

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

2012-5-26 22:07:59

stata在macro loop 中出现__000001 not found 错误提示

正式发表版
在运行一个stata宏循环程序时,出现“__000001 not found”的错误提示,也找了各种方法来解决,但仍无果,希望坛友能帮忙,在线等待。

程序代码如下:

**set iteration
local iter=1
local i="_iter1"
set more off
   
**Create first-stage data 2nd time (iter 1)
capture log close
log using firststage_datacreate_iter1, replace text
  
**1 Set up iter1 files
**create obs for NOR
clear

set obs 100
gen x = 1
replace x = 0 in 1
gen s = sum(x)
replace s = 6584 in 100
replace s = 865  in 99
drop x
keep if s==0 | (s>=5 & s<=8) | s==6584 | s==77 | s==85 | s==60 | s==80 | s==865  | s==65 | s==84
save temps, replace

clear
set obs 110
gen x = 1
gen year = sum(x)
drop x
keep if year>=89 & year<=110
save tempy, replace

clear
set obs 110
gen x = 1
gen m = sum(x)
drop x
keep if m>=100 & m<=110
cross using temps
cross using tempy
gen uncode =579
gen wbcode = "NOR"
gen b=0
sort uncode year s m
save tempnor, replace

**prep first stage estimates file from existing first-pass of first-stage estimates
foreach pp in paalas0 paalas2 paalas4 paalas6 {
  use paalas_ever0_iter0, clear
  keep if mmm==103 | mmm==104
  keep if obj=="`pp'"
  drop if uncode==99
  rename mmm m
  append using tempche  /*add data for numeraire*/
  egen bm = mean(b), by(year s m)
  gen lbf = b-bm
  gen bfactor  = exp(lbf)
  sort uncode year s m
  save paalas_ever0_iter0_bf_`pp', replace
}

quietly {
    foreach p in 0 2 6 {
  foreach y in 95110 {
   foreach m in 100 102 103 104 99 {
    foreach sss in 0 9 99 6080 865 {   
     **read in data
     noisily display [`p'] " " ["`i'"] " " [`m'] " " [`sss']
     use temp/iuv_ij_`y'_01, clear

     **add wbcodes and pcgdp info
     sort uncodei
     merge uncodei using input/uncodei
     tab _merge
     keep if _merge==3
     drop _merge
     sort uncodej
     merge uncodej using input/uncodej
     tab _merge
     keep if _merge==3
     drop _merge

     **reset
     local cscreen=0
     local yscreen=0
     local vscreen=0
     local qscreen=0
     local sscreen=100

     **check sscreen
     if (`m'== 102) {
      local vscreen=100
      local qscreen=25
      local sscreen=100
      local yscreen=3
      local cscreen=25
     }
     if (`m'== 103) {
      local vscreen=100
      local qscreen=25
      local sscreen=5
      local yscreen=3
      local cscreen=25
     }
     if (`m'== 104) {
      local vscreen=100
      local qscreen=25
      local sscreen=4
      local yscreen=3
      local cscreen=25
     }

     **pick sectors
     if `sss'==0 {
      drop if s2==68
      gen s=0
     }


     if `sss'==9 {
      drop if s2==68
      gen s=s1

      
     }

     if `sss'==99 {  
      keep if  s2==77 |s2==2 |s2==51 |s2==57 |s2==28 |s2==7 |s2==78 |s2==67 |s2==76 |s2==72 |s2==32 |s2==65 |s2==71 |s2==75 |s2==5 |s2==25 |s2==59 |s2==69 |s2==23 |s2==3 |s2==58 |s2==88 |s2==52 |s2==42 |s2==66 |s2==74 |s2==33 |s2==87 |s2==8 |s2==26 |s2==62 |s2==53 |s2==64 |s2==61 |s2==24 |s2==73 |s2==27 |s2==79 |s2==89 |s2==6 |s2==56 |s2==54 |s2==21 |s2==55 |s2==29 |s2==0 |s2==82 |s2==1 |s2==22 |s2==63 |s2==81 |s2==43 |s2==41 |s2==9 |s2==4 |s2==84 |s2==11
      gen s=s2
      replace s=6584 if s==65 | s==84
     }

     if `sss'==6080 {
      keep if (s2>=61 & s2<=69) | (s2>=81 & s2<=89)
      drop if s2==68
      replace s2=60 if s2>=61 & s2<=69 & s2~=65
      replace s2=80 if s2>=81 & s2<=89 & s2~=84
      gen s=s2
      noisily tab s2
     }

     if `sss'==865 {
      keep if s1==8 | s2==65
      gen s=865
     }

     if `m' ~= 100  & `m'~=99 {
      **new primary screen
      egen ti     = tag(uncodei sector year)
      egen tj     = tag(uncodej sector year)
      egen yrsini = sum(ti), by(uncodei sector)
      egen yrsinj = sum(tj), by(uncodej sector)
      tab yrsini
      tab yrsinj
      drop if yrsini==1 | yrsinj==1
      sum yrsini yrsinj
      drop ti tj yrsini yrsinj
     }

     **value and q screens
     drop if valuei <`vscreen' | valuej  <`vscreen'
     drop if qi     <`qscreen' | qj      <`qscreen'

     **uv screens -- be careful to count each one just once
     if `sscreen' ~= 100 {

      **if second iteration, get bfactor for adjusting geo mean. if not, set to 1
      if `iter'==1 {
       gen m=`m'
       rename uncodei uncode
       sort uncode year s m
       merge uncode year s m using paalas_ever0_iter0_bf_paalas`p', keep(bfactor)   
       rename bfactor bfactori
       tab _merge
       drop if _merge==2
       drop _merge
       rename uncode uncodei

       rename uncodej uncode
       sort uncode year s m
       merge uncode year s m using paalas_ever0_iter0_bf_paalas`p', keep(bfactor)   
       rename bfactor bfactorj
       tab _merge
       drop if _merge==2
       drop _merge
       rename uncode uncodej

       *drop m
      
      }      

      egen ti    = tag(uncodei sector year)
      egen tj    = tag(uncodej sector year)
      replace ti=. if ti==0
      replace tj=. if tj==0

      replace ti = uvi*ti
      replace tj = uvj*tj

      gen luvi   = ln(ti)
      gen luvj   = ln(tj)
      drop ti tj

      egen lgeoi = mean(luvi), by(sector year)
      egen lgeoj = mean(luvj), by(sector year)
      drop luvi luvj

      gen geoi   = exp(lgeoi)
      gen geoj   = exp(lgeoj)
      gen ti     = uvi/(geoi*bfactori)
      gen tj     = uvj/(geoj*bfactorj)

      local recip = 1/`sscreen'      

      drop if ti>=`sscreen'   | tj>=`sscreen'
      drop if ti<=`recip'     | tj<=`recip'

      sum lgeoi-geoj
      drop lgeoi lgeoj geoi geoj
  
      **participation screens -- check for minimum years and contiguity
      egen yrsini = sum(ti), by(uncodei sector)
      egen yrsinj = sum(tj), by(uncodej sector)
      drop if yrsini<`yscreen' | yrsinj<`yscreen'

      drop ti tj yrsini yrsinj
     }     

     **common screen (last)
     gen t1      = uvi~=. & uvj~=.
     egen common = sum(t1), by(s uncodei uncodej year)
     drop if common<=`cscreen'
     drop t1 common
     drop if uncodei<=uncodej

     save temp/first_s_`y'_mm`m'_00_`sss'`i'_paalas`p', replace

     **Compute ecdc:  c's cost to c's amount with d's price
     
     gen  t1         = uvi*qi     
     gen  t2         = uvj*qi
     replace t1=. if t2==.
     egen pn         = sum(t1), by(s uncodei uncodej year)
     egen pd         = sum(t2), by(s uncodei uncodej year)
     **gen  ecd      = pn/pd      
     gen  p    = ln(pn/pd)
     drop t1 t2 pn pd
  
     **Compute edcc:  d's cost to d's amount with c's price
     gen  t1         = uvj*qj     
     gen  t2         = uvi*qj
     replace t1=. if t2==.
     egen ln         = sum(t1), by(s uncodei uncodej year)
     egen ld         = sum(t2), by(s uncodei uncodej year)
     **gen  edc      = ln/ld      
     gen  l    = ln(ld/ln)
     drop t1 t2 ln ld

     **compute other
     gen mm=`m'

     save temp/first_s_`y'_mm`m'_01_`sss'`i'_paalas`p', replace

     **collapse out products
     gen common = uvi~=. & uvj~=.
     collapse (sum) valuei valuej common (mean) l p, by(s uncodei uncodej year)
     
     **add wbcodes and pcgdp info
     sort uncodei
     merge uncodei using input/uncodei
     tab _merge
     keep if _merge==3
     drop _merge
     sort uncodej
     merge uncodej using input/uncodej
     tab _merge
     keep if _merge==3
     drop _merge

     *gen cs=`cscreen'
     *gen ys=`yscreen'
     *gen vs=`vscreen'
     *gen qs=`qscreen'
     *gen ss=`sscreen'
     gen mm=`m'

     save temp/first_s_`y'_mm`m'_02_`sss'`i'_paalas`p', replace

     }
   }
  }
   }
}

二维码

扫码加我 拉你入群

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

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

2012-5-26 22:13:18
set trace on 后的错误提示为:
- _gtotal `0'
    = _gtotal float __000001 = (t1)   ,  by(s uncodei uncodej year)

      - version 6, missing
      - syntax newvarname =/exp [if] [in] [, BY(varlist) Missing]
      - tempvar touse miss
      - quietly {
      - gen byte `touse'=1 `if' `in'
      = gen byte __000002=1  
      - gen byte `miss' = `touse'
      = gen byte __000003 = __000002
      - if "`missing'" != "" {
      = if "" != "" {
        replace `miss'=0 if `exp' >= .
        }
      - sort `touse' `by' `miss'
      = sort __000002 s uncodei uncodej year __000003
      - by `touse' `by': gen `typlist' `varlist' = sum(`exp') if `miss'==1
      = by __000002 s uncodei uncodej year: gen float __000001 = sum((t1)   ) if __000003==1
      - by `touse' `by': replace `varlist' = `varlist'[_N]
      = by __000002 s uncodei uncodej year: replace __000001 = __000001[_N]
      - }


  - global EGEN_SVarname
  - global EGEN_Varname
  - if _rc { exit _rc }
  - quietly count if missing(`dummy')
  = quietly count if missing(__000001)
__000001 not found

  egen pd = sum(t2), by(s uncodei uncodej year)
  gen p = ln(pn/pd)
  drop t1 t2 pn pd
  gen t1 = uvj*qj
  gen t2 = uvi*qj
  replace t1=. if t2==.
  egen ln = sum(t1), by(s uncodei uncodej year)
  egen ld = sum(t2), by(s uncodei uncodej year)
  gen l = ln(ld/ln)
  drop t1 t2 ln ld
  gen mm=`m'
  save temp/first_s_`y'_mm`m'_01_`sss'`i'_paalas`p', replace
  gen common = uvi~=. & uvj~=.
  collapse (sum) valuei valuej common (mean) l p, by(s uncodei uncodej year)
  sort uncodei
  merge uncodei using input/uncodei
  tab _merge
  keep if _merge==3
  drop _merge
  sort uncodej
  merge uncodej using input/uncodej
  tab _merge
  keep if _merge==3
  drop _merge
  gen mm=`m'
  save temp/first_s_`y'_mm`m'_02_`sss'`i'_paalas`p', replace
  }
  }
  }
  }
r(111);

end of do-file

r(111);
二维码

扫码加我 拉你入群

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

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

2012-5-27 07:15:53
paalas_ever0_iter0文件?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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