Ich habe das Internet durchforstet und kann nicht genau finden, was ich brauche. Am Ende eines SAS-Programms habe ich den endgültigen Datensatz (20 GB) mit der Methode ods package
gezippt. Mein Datensatz befindet sich nun wie gewünscht in einem gezippten Ordner. Jetzt möchte ich in dieser .sas7bdat
Datei entpacken und lesen, und ich bin nicht ganz sicher über die Methode.SAS entpacken Sie eine einzige sas7bdat Datei
Unten sehen Sie ein Beispiel, das ein permanentes SAS-Dataset erstellt und es zippt. Ich bin in dieser ZIP-Datei aussehen kann und „sehen“ den Datensatz ich brauche, aber ich habe keine Ahnung, wie es zu entpacken und lesen in:
** assign your path **;
libname output "H:\SAS Example Code";
%let path = H:\SAS Example Code;
** test data **;
data output.class; set sashelp.class; run;
** zip the permanent SAS dataset **;
ods package(zip) open nopf;
ods package(zip)
add file="&path./class.sas7bdat";
ods package(zip)
publish archive
properties(
archive_name= "sashelp.class.zip"
archive_path="&path."
);
ods package(zip) close;
/* BELOW THIS LINE NEEDS WORK -- HOW DO I READ IN THIS DATASET? */
** assign filename and point to zip file **;
filename inzip zip "&path./sashelp.class.zip";
** view the .sas7bdat file within the zip file **;
data contents(keep=memname);
length memname $200;
fid=dopen("inzip");
if fid=0 then stop;
memcount=dnum(fid);
do i=1 to memcount;
memname=dread(fid,i);
output;
end;
rc=dclose(fid);
run;
Nicht bewusst, eine native Möglichkeit, das zu tun - ich denke, Sie müssten einen Unzip-Befehl an das Betriebssystem leiten. Hast du diese Fähigkeit? – Joe
Anstatt eine Zip-Datei hinzuzufügen, wird compress = YES oder eine CPT- oder XPT-Datei anstelle einer Option verwendet? Dann gibt es einfachere Möglichkeiten, auf die Datei zuzugreifen. – Reeza
@Joe Ich kann einen 'X' Befehl wegen Server-Berechtigungen nicht verwenden, aber ich benutze PuTTY für Skripting und Batch-Prozesse. Ich denke, meine beste Wette ist es, mit SAS zu komprimieren und entpacken mit PuTTY, wenn erforderlich. – Foxer