Я разрабатываю эту оболочку вокруг tempfile
в Stata для одновременной обработки нескольких наборов данных без необходимости сохранять их в текущем каталоге. По сути, я хочу, чтобы Stata имитировала SAS, и поэтому программа называется work; исходный код без каких-либо опций и минимальной функциональности. Я придерживаюсь вашего совета не токенизировать и программа работает; однако проблема в том, что как только я вспоминаю временный файл в следующей программе, эта программа (работа) не передает дескриптор следующей программе для вызова временного файла.
код для "работы"
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
для обработки нескольких файлов, особенно после слияния большого количества файлов без каких-либо проблем; однако программа-оболочка с опциями для сортировки и отображения местоположения рабочего каталога была бы очень удобна для всех нас.
program
проблемы и убедитесь, что код отображается с четким форматированием. - person Roberto Ferrer   schedule 27.02.2015cd
d перед запуском этого. Вы можете показать это с помощью командыpwd
. - person Steve Samuels   schedule 02.03.2015