LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (May 2006)Back to main SPSSX-L pageJoin or leave SPSSX-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Tue, 30 May 2006 17:00:29 -0500
Reply-To:     "Peck, Jon" <peck@spss.com>
Sender:       "SPSSX(r) Discussion" <SPSSX-L@LISTSERV.UGA.EDU>
From:         "Peck, Jon" <peck@spss.com>
Subject:      Re: Running a single syntax file using MANY data files
Comments: To: Nick White <nick-white@comcast.net>
Content-Type: text/plain; charset="iso-8859-1"

Skimming through a lot of email on this topic, I did not see what I think is actually the easiest and most robust way to tackle problems like this. (If you are a regular reader, you can guess what I am going to say.)

Use BEGIN PROGRAM and Python. One of the examples in my Directions PowerPoint, which is available on the new Developer Central site, which replaces the SPSS Code Center, (www.spss.com/devcentral) illustrates driving syntax from all the sav files found in a particular location. I think it is example 9 in that document, which merges all the sav files in a particular directory.

With this approach, you would, in the syntax stream, discover the files matching some filespec (with wildcards if desired), and iterate your SPSS syntax over these files.

There is a viewer module that allows you to control the Viewer, including the standard SPSS exports. I don't know how you are generating the pdfs (pdf export will be a standard feature in SPSS 15), but that can be handled with automation calls from the Python code also.

I can provide more details on how to go about all this if this is the way you want to go.

Regards, Jon Peck SPSS

-----Original Message----- From: SPSSX(r) Discussion on behalf of Nick White Sent: Mon 5/29/2006 8:54 PM To: SPSSX-L@LISTSERV.UGA.EDU Subject: Re: [SPSSX-L] Running a single syntax file using MANY data files Adrian, thank you very much for your ideas! Final output report has been thoroughly debugged. Input data was very nicely cleaned before we received it (it is survey data that was collected via a webpage... the programmer did a very nice job and we have found no invalid data... so far...). The .sav files are all in the same directory, but are named after schools (definitely not a nice workable progression). That's okay, though, because I am printing the output files to PDF's with the same names as the schools (which is what we will deliver to the state department of education). I've run and proofed reports for 10 different schools, so I am optimistic (though you will never catch me saying "NOTHING can go wrong!!!") While I wish I had a nice text editor, I'll likely be using Word. I now have 3 approaches to try (not counting my script which didn't even get off the ground...).

Thanks!

Nick White

-----Original Message----- From: Barnett, Adrian (HEALTH) [mailto:adrian.barnett@health.sa.gov.au] Sent: Monday, May 29, 2006 8:58 PM To: Nick White; SPSSX-L@LISTSERV.UGA.EDU Subject: RE: Running a single syntax file using MANY data files

Hi Nick If your files are all in the same directory and have convenient names like FILE001 to FILE800, you can write a macro which will do the job. A naming convention like the above will make it much easier to express he file list succinctly.

If your files are all over the place in different directories, it will be much harder and I'm not sure what I'd suggest (Maybe moving them into the same directory?). If they are all in the same directory and they don't have names forming a logical progression like the above, or if you don't fancy the dubious pleasures of macro-writing, you could do it in the following way.

Open a command window and type: Dir *.sav > files.sps

That will write a list of all the files with a .sav extension into a file called files.sps. This will work best if you only have the files concerned in that directory. Otherwise you will have to edit out the unwanted file names.

Here is the beginning of the file you get by running the above command in the SPSS directory:

Volume in drive C is Local Drive Volume Serial Number is 5CE7-523B

Directory of C:\Program Files\SPSS

16/09/2002 10:13 103,627 1991 U.S. General Social Survey.sav 30/11/1999 05:50 664 AML survival.sav 25/10/1999 10:03 6,664 anorectic.sav 30/11/1999 05:49 768 Anxiety 2.sav

Using a text editor or word processor, delete all the stuff in front of the file name and the preamble at the top about volume and directory etc. (MS Word can, I think, do columnwise selections and deletions. A decent text editor will too and is much better suited to tasks like this.)

Prefix the file names with INSERT FILE='

Add a closing ' to the end of each filename and any other options that seem relevant to you (refer to the syntax manual for the INSERT command for these).

Save your file with a .sps extension and open it in the SPSS syntax editor and run it. You can also use the SPSS Production facility on the same file with a few alterations to it. You can experiment for yourself creating a production job, saving the output and then opening it in an editor to see what these other changes are. I would not do this till it was clear the whole job had been properly debugged and was something you were going to run regularly though.

Whichever option you use, you are still going to have an awful lot of work to do once all this has run, as you will have 800 sets of results. Debugging will be difficult in the event there are peculiarities in the data of only SOME files so you will have to check the outputs carefully. You might want to put in tests for certain unwanted conditions, so you can search for the results in the output file. Examples might be values out of range, two or more variables not bearing the correct relationship (e.g. if variable A is equal to a certain value then variables B and C can't be less than such-and-such), no cases in some expected value range and so on. You'd definitely want to use the FIND command in the output window to search for the strings ERROR and WARNING to make sure you find any problems you might miss if you search by eye. I'd start off running just one or a few files first for the initial debugging and add the rest once you are confident it's all working as you want.

Good luck.

Regards

Adrian

-- Adrian Barnett Research & Information Officer Ph: +61 8 82266615 Research, Analysis and Evaluation Fax: +61 8 82267088 Strategic Planning and Research Branch Strategic Planning and Population Health Division Department of Health

God is good but don't dance in a currach. - Irish proverb

This e-mail may contain confidential information, which also may be legally privileged. Only the intended recipient(s) may access, use, distribute or copy this e-mail. If this e-mail is received in error, please inform the sender by return e-mail and delete the original. If there are doubts about the validity of this message, please contact the sender by telephone. It is the recipient's responsibility to check the e-mail and any attached files for viruses.

-----Original Message----- From: SPSSX(r) Discussion [mailto:SPSSX-L@LISTSERV.UGA.EDU] On Behalf Of Nick White Sent: Monday, 29 May 2006 4:14 To: SPSSX-L@LISTSERV.UGA.EDU Subject: Running a single syntax file using MANY data files

I have a syntax file and associated scripts that run an analysis and produce a report in pdf format that has the same name as the data file. I wish to run this program using about 800 data files (all in .sav format). What is the easiest way to run the syntax file against all 800 files? Production facility doesn't seem to be the answer. I am not interested in sitting at the computer for 40+ hours entering data file names.

Thanks,

Nick White


Back to: Top of message | Previous page | Main SPSSX-L page