我已经program
在 Stata 中使用过该命令很多次了。
今天,我正在尝试自学如何创建一个使用输入的程序。我试过查看帮助文件和我在互联网上找到的这些讲座幻灯片syntax
的第 71 页,但我不知道该怎么做。
如果您能向我展示一些彻底涵盖该特定主题的文档,我将不胜感激。或者只是在下面指出我做错了什么。
如您所见,我只想创建一个简短的程序来检查指定文件夹中是否存在文件(capture confirm file
),但是如果有错误(),我想显示我自己的对话框window stopbox note
,如果是,则退出do
有条不紊地归档(exit 601
)。
cap program drop checkfile
program checkfile
syntax varlist, folder(varname) file(varname)
capture confirm file "`folder'/`file'"
if _rc == 601 {
window stopbox note `"`file' is not in `folder'"' // creates a dialogue box for the error
exit 601
}
end
checkfile folder(C:\Users\User\Documents) file(NIDSw5.dta)
返回错误:
不允许使用因子变量和时间序列运算符
r(101);
我不确定如何使用syntax
来获取文件夹路径和文件名。请注意,这些通常是字符串,但我猜是:
"`folder'/`file'"
将导致,例如,""C:\Users\User\Documents"/"NIDSw5.dta""
如果输入是用引号完成的,这就是为什么我认为我应该使用该local(input)
方法。
另请注意,我将使用全局变量 ( $DataIN
) 而不是将文件夹路径字符串放在那里,并且文件名包含附加到字符串上的全局变量。
删除varlist,
会导致错误:
无效的语法
r(197);