Разработайте программу в Stata для обработки нескольких файлов в рабочей папке так же, как SAS, используя временный файл
Я разрабатываю эту оболочку вокругtempfile
в Stata для обработки нескольких наборов данных одновременно, без необходимости сохранять их в текущем каталоге. По сути, я хочу, чтобы Stata имитировала SAS, и именно поэтому название программы - работа; исходный код без каких-либо опций и минимальной функциональности. Я придерживаюсь вашего совета, чтобы не токенизировать и не работать программы; однако проблема заключается в том, что когда я вспоминаю временный файл в другой программе, эта программа (работа) не передает дескриптор следующему для вызова временного файла.
capture program drop work
program define work
version 12.1
syntax [name(id="file name")] [, sort(string) ]
*tokenize namelist
*di "namelist'"
*if "nol'" !="" | "nol'" !="" | "nolabel'" !="" {
* di "``namelist''"
*}
tempfile namelist'
*di "namelist'"
if "sort'" != "" {
sortsort'
}
di "File 'namelist'' saved in following temporary work folder"
save ` namelist''
*di "Now you can use temporary file =namelist'' in your program"
end
Как только я вызываю временный файл в моем файле do следующим образом, появляется эта ошибка:
work Orig File 'Orig' saved in following temporary work folder file C:\Users\saa602\AppData\Local\Temp\ST_00000001.tmp saved
. di "`Orig'"
. use `Orig', replace
invalid file specification
Обратите внимание, что я используюtempfile
успешно обрабатывать несколько файлов, особенно после объединения большого количества файлов без каких-либо хлопот; однако программа-обертка с параметрами сортировки и отображения местоположения рабочего каталога была бы очень полезна для всех нас.