Я уже несколько раз использовал команду 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);