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