我在尝试运行代码时遇到了一个奇怪的问题。以下是我的代码示例(注意:我已经在主目录中):
cd "C:/`mydir'" //where `mydir' is the local for the folder containing the fig folder.
use cleaned.dta, clear
local outcome drr_trtd
tempname post_handle
local postfile_varlist str12(tau_text) double(pt_est se)
postfile `post_handle' `postfile_varlist' using "fig/dta/es_M12_P11_`outcome'.dta", replace
postclose `post_handle'
use "fig/dta/es_M12_P11_`outcome'.dta", clear
问题在于,每当我尝试运行此代码时,都会收到错误:
postfile `post_handle' `postfile_varlist' using "fig/dta/es_M12_P11_`outcome'.dta", replace
fig/dta/es_M12_P11_drr_trtd.dta invalid name
我认为这可能是因为引号,所以我删除了引号,然后我收到以下错误:
postfile `post_handle' `postfile_varlist' using fig/dta/es_M12_P11_`outcome'.dta, replace
/ invalid name
然后我试着创建没有文件路径的文件,我编辑了postfile命令,如下所示:
postfile `post_handle' `postfile_varlist' using "hello.dta", replace
现在,引用我得到错误:
"hello.dta invalid name
如果没有引用,我会得到相同的错误,但是使用hello.dat。我只是在做一些明显不对的事吗?我不明白为什么我会收到这个错误。
新守则:
local mydir /Users/F H/Desktop/Ray/analysis
cd "C:/`mydir'/"
tempname post_handle
local postfile_varlist str12(tau_text) double(pt_est se)
pwd
postfile `post_handle' `postfile_varlist' ///
using "\fig\dta\event_study_M24_P59_sa.dta" ///
, replace
我收到错误:
(note: file \fig\dta\event_study_M24_P59_sa.dta not found)
file \fig\dta\event_study_M24_P59_sa.dta could not be opened
答案 0 :(得分:1)
我似乎无法重现您的错误。一个工作的例子:
sysuse auto, clear
local outcome drr_trtd
tempname post_handle
local postfile_varlist str12(tau_text) double(my_price myrep)
postutil clear
postfile `post_handle' `postfile_varlist' ///
using "test/test2/resu_lts_`outcome'.dta", replace
post `post_handle' (make[1]) (price[1]) (rep78[1])
postclose `post_handle'
use "test/test2/resu_lts_`outcome'.dta", clear
list
(我已经创建了相应的测试目录。)
答案 1 :(得分:1)
以下测试对我有用,只要我在当前目录中有写权限,否则不行。
sysuse auto, clear
local outcome drr_trtd
tempname post_handle
local postfile_varlist str12(tau_text) double(my_price myrep)
postutil clear
postfile `post_handle' `postfile_varlist' using `outcome'.dta, replace
post `post_handle' (make[1]) (price[1]) (rep78[1])
postclose `post_handle'
use `outcome'.dta, clear
list