Stata Postfile错误:无效名称
我在尝试运行代码时遇到了一个奇怪的问题。以下是我的代码示例(注意:我已经在主目录中): 问题是,每当我尝试运行此代码时,都会出现一个错误:Stata Postfile错误:无效名称,stata,Stata,我在尝试运行代码时遇到了一个奇怪的问题。以下是我的代码示例(注意:我已经在主目录中): 问题是,每当我尝试运行此代码时,都会出现一个错误: 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 `p
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
(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
没有引用,我得到了相同的错误,但是有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
我得到一个错误:
"hello.dta invalid name
(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
我似乎无法重现你的错误。一个有效的例子:
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
(我已经创建了相应的测试目录。)我似乎无法重现您的错误。一个有效的例子:
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
(我已经创建了相应的测试目录。)我似乎无法重现您的错误。一个有效的例子:
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
(我已经创建了相应的测试目录。)我似乎无法重现您的错误。一个有效的例子:
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
(我已经创建了相应的测试目录。)只要我在当前目录中有写权限,以下测试对我有效,否则无效
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
以下测试对我有效,只要我在当前目录中有写权限,否则不行
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
以下测试对我有效,只要我在当前目录中有写权限,否则不行
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
以下测试对我有效,只要我在当前目录中有写权限,否则不行
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
你说“我已经在主目录中”是什么意思。这是否意味着您在
fig
目录中?尝试发布一个显示错误的可复制示例。类似于我在下面发布的内容。(我无法复制。)您使用的是Stata的更新版本吗?运行update
。您是否在部分运行代码?一次运行所有程序并报告。在调用postfile
之前插入macro list
。这将显示哪些本地宏可见。本地宏var
未在您的代码中定义,尽管这在这里似乎并不重要。我无法了解详细信息,但我仍然猜测,与您的工作位置相比,Stata无法确定您想要输出文件的位置。我通常在和我想保存东西的目录完全相同的目录下工作。当然也有例外,但尽管我有时会感到困惑,但我不知道斯塔塔在这里是错的。你说“我已经在主目录中”是什么意思。这是否意味着您在fig
目录中?尝试发布一个显示错误的可复制示例。类似于我在下面发布的内容。(我无法复制。)您使用的是Stata的更新版本吗?运行update
。您是否在部分运行代码?一次运行所有程序并报告。在调用postfile
之前插入macro list
。这将显示哪些本地宏可见。本地宏var
未在您的代码中定义,尽管这在这里似乎并不重要。我无法了解详细信息,但我仍然猜测,与您的工作位置相比,Stata无法确定您想要输出文件的位置。我通常在和我想保存东西的目录完全相同的目录下工作。当然也有例外,但尽管我有时会感到困惑,但我不知道斯塔塔在这里是错的。你说“我已经在主目录中”是什么意思。这是否意味着您在fig
目录中?尝试发布一个显示错误的可复制示例。类似于我在下面发布的内容。(我无法复制。)您使用的是Stata的更新版本吗?运行update
。您是否在部分运行代码?一次运行所有程序并报告。在调用postfile
之前插入macro list
。这将显示哪些本地宏可见。本地宏var
未在您的代码中定义,尽管这在这里似乎并不重要。我无法了解详细信息,但我仍然猜测,与您的工作位置相比,Stata无法确定您想要输出文件的位置。我通常在和我想保存东西的目录完全相同的目录下工作。当然也有例外,但尽管我有时会感到困惑,但我不知道斯塔塔在这里是错的。你说“我已经在主目录中”是什么意思。这是否意味着您在fig
目录中?尝试发布一个显示错误的可复制示例。类似于我在下面发布的内容。(我无法复制。)您使用的是Stata的更新版本吗?运行update
。您是否在部分运行代码?一次运行所有程序并报告。在调用postfile
之前插入macro list
。这将显示哪些本地宏可见。本地宏var
未在您的代码中定义,尽管这在这里似乎并不重要。我无法了解详细信息,但我仍然猜测,与您的工作位置相比,Stata无法确定您想要输出文件的位置。我通常在和我想保存东西的目录完全相同的目录下工作。当然也有例外,但我有时会感到困惑,我不知道斯塔塔在这里是错的。好的,谢谢。这不知怎么起作用了。我所做的只是将它复制粘贴到一个新的do文件中,并根据我自己的代码进行了一些调整。我仍然无法让原始的do文件工作,但这不再是一个问题,因为这项支出与我的代码一起工作。你是我的朋友hero@Roberto和我一样值得称赞,因为我共同解决了你一半的问题。我们没有发现你犯的错误。当你有足够的声望时,回来给他投票。好的,谢谢。这不知怎么起作用了。我所做的只是把它复制粘贴到一个新的do文件中,然后调整它的大小