Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(commands=useperm.sas)
Introduction:
In general, SAS data sets are not compatible across operating systems (Windows, Mac, Unix, mainframe), but they are downwardly compatible across releases (e.g. SAS 6, SAS 8, SAS 9). A later release of SAS can generally read data sets from an earlier release, by using an engine specification. SAS transport files can be used to move SAS data sets across operating systems. This chapter discusses using permanent SAS data sets from different releases of SAS. There are two zipped files that contain SAS data sets for this workshop. More information can be obtained about the variables in these data sets in Appendix III. SASDATA1.ZIP contains the following version 6 SAS data sets: Fitness.sd2 Gpa.sd2 March.sd2 Owen.sd2
SASDATA1.ZIP also contains a version 6 formats catalog called FORMATS.SC2. We discuss how to use formats catalogs in Chapter 20. SASDATA2.ZIP contains the following SAS version 8/9 data sets: bank.sas7bdat baseball.sas7bdat business.sas7bdat iris.sas7bdat tecumseh.sas7bdat
SASDATA2.ZIP also contains a version 7 SAS data set with a short file extension (ship.sd7). The name of this file will need to be changed to ship.sas7bdat before it can be read into SAS
NB: If you cannot see the file extensions on your computer, follow the steps below: Go to Windows Explorer or My Computer From the menus at the top select ToolsFolder OptionsView Make sure that Hide file extensions for known file types is NOT selected. SAS Release V7.0 to V9.0 V7.0 to V8.0 V6.08 to V6.12 V6.06 to V6.12 V6.10 to V6.12 V6.04 (PC SAS) Extension .sas7bdat* .sd7** .sd2 .ssd01 .ssd01 .ssd Example business.sas7bdat ship.sd7 fitness.sd2 mydata.ssd01 mydata.ssd01 mydata.ssd
*This long file extension is the default SAS 8.0 and 9.0 data set extension. **Files ending in .sd7 will be written by SAS release 7 or 8 if there are already SAS 6 files in the same folder (such as .sd2 files). You may not be able to read .sd7 files if there are also .sas7bdat files in the same directory. (SAS release 9 does not read data files with the .sd7 extension at all.) If you do have SAS data sets that end in the .sd7 file extension, rename them to .sas7bdat before trying to use them in SAS. 2. Assign a Library and Engine: The next step is to assign a library and engine so that SAS can access the data set(s).
Library:
A library is a location on your computer (e.g. a folder or directory) where you store SAS data sets. The libname statement assigns an alias (called a libref) to the directory that you specify. The libref must be 8 characters or less to be valid in SAS. A library refers to the entire folder (not to an individual data set). One library can have several data sets stored in it, and they can be of mixed types. However, a particular engine assigned to a given folder will only "SEE" files of one type. It is good practice to keep SAS data sets of different types in different folders. Default library: If you do not specify a library for a data set, the default is the WORK library. If you have no data sets in WORK, and no library is specified for a procedure, SAS will produce an error stating that there is not a default data set to use. Engine: An engine tells SAS the type of files that it is to read. Some commonly used engines are:
V9 the default engine to read/write data sets for SAS release 9. V8 the default engine to read/write data sets for SAS release 8. V6 to read/write data sets in the SAS 6.08 through 6.12 format using SAS 8 or 9. V604 to read (but not write) data sets created using PC SAS 6.04.
Note: Versions of SAS are downwardly compatible. That is: in SAS 6, you can use the V6 and V604 engines, but not the V8 engine. In SAS 8 and 9, you can use all of these engines to read files, but you cannot write a data set using the V604 engine. Default engine: If you do not assign an engine, SAS will assign one based on the SAS data sets found within a folder. If there are no data sets in a folder, SAS will use the current version of SAS as the default; i.e., if you are running SAS 9.0, it will automatically use the V9 engine, etc. If there are already data sets within a folder, SAS will assign the engine corresponding to the highest version compatible with any of the data sets in the folder. So if there are both V6 and V9 data sets in a folder, SAS will assign the V9 engine to read data from that folder. To read V6 data sets from a folder containing both V6 and V9 data sets, the V6 engine must be used explicitly.
SAS will not produce any output in the output window as a result of submitting these commands, but you will see the note shown below in the SAS Log. Be sure to check the SAS log after submitting a libname statement.
libname sasdata1 V6 "c:\temp\sasdata1"; NOTE: Libref SASDATA1 was successfully assigned as follows: Engine: V6 Physical Name: c:\temp\sasdata1
Once the libname statement has been submitted (no run statement is needed), you will be able to use any of the SAS release 6 data sets in the c:\temp\sasdata1 folder. You will need to specify the data set to use with the data= option for each procedure. The libname 3
statement will be in effect for the entire SAS session, and so it only needs to be submitted once. To use a particular data set, you must use the data= option, and specify a two-level name for the data set (e.g., sasdata1.fitness). No spaces are allowed in the two-level data set name. The data set that you specify with the data= option is only in effect for a given proc and must be repeated for each proc, as shown in the example below. The file extension is not specified. SAS assumes that the file extension will conform to the ruls for file extensions that correspond to the engine you specified.
libname sasdata1 V6 "c:\temp\sasdata1"; title "SASDATA1.FITNESS"; proc means data=sasdata1.fitness; proc print data=sasdata1.fitness; run; proc freq data=sasdata1.fitness; tables sex; run; title "SASDATA1.GPA"; proc means data=sasdata1.gpa; run;
You can have an unlimited number of libname statements in a single SAS session, to allow you to utilize SAS data sets of different types and/or in different locations.
libname sasdata1 v6 libname sasdata2 v9 "c:\temp\sasdata1"; "c:\temp\sasdata2";
title "Contents of Version 6 Datasets in SASDATA1 Library"; proc contents data=sasdata1._all_ nods; run;
Contents of Version 6 Datasets in SASDATA1 Library The CONTENTS Procedure Directory Libref SASDATA1 Engine V6 Physical Name c:\temp\sasdata1 File Name c:\temp\sasdata1 Member # Name Type 1 2 3 4 File Size Last Modified
FITNESS DATA 8448 31Dec96:08:24:38 FORMATS CATALOG 12544 20Jun02:07:23:54 GPA DATA 16640 31Dec96:08:24:38 MARCH DATA 57600 21Dec93:08:28:46
Directory Libref SASDATA2 Engine V9 Physical Name c:\temp\sasdata2 File Name c:\temp\sasdata2 Member # Name 1 2 3 4 File Type Size Last Modified
BASEBALL DATA 82944 20Jun02:07:12:32 BUSINESS DATA 17408 20Jun02:07:12:32 IRIS DATA 13312 20Jun02:07:12:32 TECUMSEH DATA 1147904 02Jun05:00:00:04
The default data set will be in effect until a new one is specified with another options statement, or until another new data set is created.
This method has the advantage of allowing you to work with a temporary SAS data set, which is often simpler than working with a permanent one. But it can be cumbersome if you have a large data set, because it creates a whole new copy of the data in the WORK library.
Autoexec.sas file:
The library or libraries that you wish to use must be re-assigned for each session, if you assign them using a libname statement, To have SAS remember your libraries from one run to another, you can create a file called autoexec.sas, and place the libname statements in it, as shown below. Each time SAS starts up, it will read the autoexec.sas file, and assign the appropriate libraries.
libname sasdata1 V6 "c:\temp\sasdata1"; libname sasdata2 v9 "c:\temp\sasdata2";
If you place the autoexec.sas file in the directory from which SAS is running, SAS will read it and execute the commands it contains each time it starts up. However, if you save the autoexec.sas file in another location, you can specify it as an option in the SAS
shortcut. An example SAS shortcut is shown below, followed by the notes in the SAS Log. The shortcut shown below would all appear on a single line.
"C:\Program Files\SAS\SAS 9.1\sas.exe" -CONFIG "C:\Program Files\SAS\SAS 9.1\nls\en\SASV9.CFG" AUTOEXEC c:\temp\autoexec.sas
NOTE: AUTOEXEC processing beginning; file is c:\temp\autoexec.sas. NOTE: Libref SASDATA1 was successfully assigned as follows: Engine: V6 Physical Name: c:\temp\sasdata1 NOTE: Libref SASDATA2 was successfully assigned as follows: Engine: V9 Physical Name: c:\temp\sasdata2 NOTE: AUTOEXEC processing completed.