CONVERT Procedure: Windows

Converts BMDP, OSIRIS system files and SPSS export files to SAS data sets.
Windows specifics: All


PROC CONVERT product-specification <option(s)>

Required Arguments

is required and can be one of the following:
BMDP=fileref <(CODE=code CONTENT=content-type)>
converts into a SAS data set the first member a BMDP save file created under DOS. Here is an example:
   filename save 'c:\myidr\bmdp.dat';
   proc convert bmdp=save;
If you have more than one save file in the BMDP file referenced by the fileref argument, you can use two options in parentheses after fileref. The CODE= option lets you specify the code of the save file that you want, and the CONTENT= option lets you give the content of the save file. For example, if a file with CODE=JUDGES has a content of DATA, you can use the following statement:
   filename save 'c:\mydir\bmdpl.dat';
   proc convert bmdp=save(code=judges
specifies a fileref for the OSIRIS file to be converted into a SAS data set. If you use this product specification, you must also use the DICT= option, which specifies the OSIRIS dictionary to use.
specifies a fileref for the SPSS export file to be converted into a SAS data set. The SPSS export file must be created by using the SPSS EXPORT command from any operating environment.
specifies a fileref of the dictionary file for the OSIRIS file. The DICT= option is valid only when used with the OSIRIS product specification.
gives the number of the observation where the conversion is to begin. This option enables you to skip over observations at the beginning of the OSIRIS or SPSS PC system file.
specifies the number of the last observation to convert. This option enables you to exclude observations at the end of the file.
OUT= SAS-data-set
names the SAS data set created to hold the converted data. If the OUT= option is omitted, SAS still creates a Work data set and automatically names it DATAn, just as if you omitted a data set name in a DATA statement. If it is the first such data set in a job or session, SAS names it DATA1, the second is DATA2, and so on. If the OUT= option is omitted or if you do not specify a two-level name (including a libref) in the OUT= option, the converted data set is stored in your Work data library and by default it is not permanent.


Overview of the Convert Procedure

The CONVERT procedure converts a BMDP or OSIRIS system file or an SPSS export file to a SAS data set. It produces one output data set, but no printed output. The new data set contains the same information as the input system file; exceptions are noted in Output Data Sets. The BMDP, OSIRIS and SPSS engines provide more extensive capabilities.
Because the BMDP, OSIRIS and SPSS products are maintained by other companies or organizations, changes can be made that make the system files incompatible with the current version of PROC CONVERT. SAS upgrades PROC CONVERT only to support changes that are made to these products when a new version of SAS is available.

Missing Values

If a numeric variable in the input data set has either no value or a system missing value, PROC CONVERT assigns it a missing value.

Output Data Sets

This section describes the attributes of the output SAS data set for each product-specification value.
Ensure that the translated names are unique.
Variable names can sometimes be translated by SAS. To ensure that the procedure works correctly, be sure your variables are named in such a way that translation results in unique names.

BMDP output

Variable names from the BMDP save file are used in the SAS data set, but nontrailing blanks and all special characters are converted to underscores in the SAS variable names. The subscript in BMDP variable names, such as x(1), becomes part of the SAS variable name, with the parentheses omitted: X1. Alphabetic BMDP variables become SAS character variables of corresponding length. Category records from BMDP are not accepted.


For single-response variables, the V1-V9999 name becomes the SAS variable name. For multiple-response variables, the suffix Rn is added to the variable name, where n is the response. For example, V25R1 is the first response of the multiple-response variable V25. If the variable after V1000 has 100 or more responses, responses above 99 are eliminated. Numeric variables that OSIRIS stores in character, fixed-point binary, or floating-point binary mode become SAS numeric variables. Alphabetic variables become SAS character variables; any alphabetic variable of length greater than 200 is truncated to 200. The OSIRIS variable description becomes a SAS variable label, and OSIRIS print formats become SAS formats.

SPSS Output

SPSS variable names and variable labels become variable names and labels without change. SPSS alphabetic variables become SAS character variables. SPSS blank values are converted to SAS missing values. SPSS print formats become SAS formats, and the SPSS default precision of no decimal places becomes part of the variables' formats. SPSS value labels are not copied. DOCUMENT data are copied so that PROC CONTENTS can display them.


The CONVERT procedure is closely related to the BMDP, OSIRIS and SPSS interface library engines. (In fact, the CONVERT procedure uses these engines.) For example, the following two sections of code provide identical results:
  • filename myfile 'myspss.por';
    proc convert spss=myfile out=temp;
  • libname myfile spss 'myspss.por';
    data temp;
        set myfile._first_;
However, the BMDP, OSIRIS and SPSS engines have more extensive capabilities than PROC CONVERT.