BookmarkSubscribeRSS Feed
aj34321
Quartz | Level 8

Dear All,

I'm using SAS Enterprise Guide 4.1 and I was wondering if this version can read datasets from a zip file. I have nearly 2000 large size datasets which I would prefer to read without extracting them.

Googled plenty of sites but did not find any direct solution. Experts request you to advise on this.

Thanks, Manthan.

6 REPLIES 6
Reeza
Super User

AFAIK you need to unzip, read file and then delete in all versions of SAS. You can store them with the compress option but I don't believe that's as efficient as ZIP.

Reeza
Super User

The method is in the comments to access a SAS datasets, but does require copying the file out.

Patrick
Opal | Level 21

In SAS9.4 there is a zip engine for the Libname statement which would give you direct access to a zip archive. Comment added: This was dreaming. There is a zip engine for filename not for libname.

I believe EG4.1 goes with SAS9.1.3 so there you need to first extract the SAS file. What you could do: Extract the file into WORK and then use it from there like any other SAS table in work.

Below sample code uses zip file "c:\temp\ziptest.zip". This archive contains file "class.sas7bdat". The program extracts the file to the SAS Work folder. 7-zip is used for extracting the file. You will need to figure out what's available in your environment and how the exact command syntax needs to look like.

proc sql noprint;

  select path into :pathname

  from dictionary.libnames

  where libname='WORK';

quit;

data _null_;

  rc=system('"C:\Program Files\7-Zip\7z.exe" e "c:\temp\ziptest.zip"  -o"'||strip(symget("pathname"))||'" class.* -r -y');

  if rc ne 0 then put "return code is " rc /"Process not successful";

  stop;

run;

proc print data=work.class;

run;

Kurt_Bremser
Super User

To directly read a SAS dataset, you need to have it in a library, which in the case of zipped files would mean that the libname statement supports a "zip" engine. Since this is not (yet?) implemented, you can only decompress the files with an external command (from SAS 9.4 you could also use the filename zip access method to unpack the file), read them and delete them afterwards.

On which operating system platform does your SAS workspace server run?

You could post an idea about implementing a zip engine for the libname statement in future SAS releases.

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 18448 views
  • 0 likes
  • 5 in conversation