Entwickeln Sie ein Programm in Stata, um mehrere Dateien im Arbeitsordner wie SAS mit tempfile @ zu verarbeite

Ich entwickle diesen Wrapper umtempfile in Stata, um mehrere Datensätze gleichzeitig zu verarbeiten, ohne sie im aktuellen Verzeichnis speichern zu müssen. Im Wesentlichen möchte ich, dass Stata SAS imitiert, und das ist der Grund, warum der Programmname funktioniert. Der anfängliche Code ist ohne Optionen und ohne minimale Funktionalität. Ich halte mich an Ihren Rat, keine Token zu erstellen und keine Arbeiten zu programmieren. Allerdings ist das Problem, wenn ich das tempfile in einem weiteren Programm abrufe, dieses Programm (work) nicht das Handle an das nächste weitergebe, um das tempfile aufzurufen.

code für "Arbeit"
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

Nachdem ich die temporäre Datei in meiner do-Datei wie folgt aufrufe, tritt dieser Fehler auf:

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

Bitte beachten Sie, dass ich @ verwendet hatempfile erfolgreich, um mehrere Dateien zu verarbeiten, insbesondere wenn eine große Anzahl von Dateien ohne Probleme zusammengeführt wurde; Ein Wrapper-Programm mit Optionen zum Sortieren und Anzeigen des Arbeitsverzeichnisses wäre für uns alle sehr praktisch.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage