12 Ways to save SAS data

From BingWiki

Jump to: navigation, search

Contents

Using CARDS; File Save (with editor window active)

(this 'way' may be obvious, but works just fine when the datasets are small)


In the SAS Enhanced Editor window type

data george;
   input id age score name $;
cards;
101 19 97 Harry
102 20 80 Sally
103 25 85 George
104 18 70 Mary
105 30 94 Jane
;
run;

This will define the George dataset. Then click on File, Save or Save as …

Name the file what you like. It will be saved with the extension .SAS, which (though it's not named as .TXT or .ASC) is simply plain ASCII text and can also be treated as such. Take note of the Folder location where you place the file.

To get it back

Click on File->Open Program

Browse to the folder where you've saved the program. The browser window will only show you file that end with .SAS so if you've received a text file which has a differently named extension, you'll need to click on File type, Show All Files in the Open dialog window to see files not ending with .SAS.

Note: often a file that is emailed to you as an attachment won't usually be saved to the same folder where you keep your SAS programs. Often an email client will download attachments to the desktop whereas it's probably best to keep your SAS work in a separate folder.

Cut and Paste (ex. Fixed format data)

When in an editor (doesn't need to be SAS), highlight just the data

101 19 97 Harry 
102 20 80 Sally 
103 25 85 George
104 18 70 Mary  
105 30 94 Jane  

Click on Edit->Copy. Open up Notepad (from Start, All programs, Accessories, Notepad, if not elsewhere on your desktop). In Notepad choose Edit->Paste, then save the text file by clicking on File->Save. This will save the data as a plain (ASCII) text file. Note where (which folder) you have saved the data. Let's save this data with the name george.txt in the folder c:\Documents and Settings\Ralph\My Documents. You may also type the following data into a notepad window and save it as c:\Documents and Settings\Ralph\My Documents\fixed.txt

10119Harry  97
10220Sally  80
10325George 85
10418Mary   70
10530Jane   94

To Get Them Back (space-delimited or fixed-formatted text)

Run a variation of the following two SAS code examples.

data george;
  infile 'c:\Documents and Settings\Ralph\My Documents\george.txt';
  input id age score name $;
  run;
data george2;
  input 1-3 id  4-5 age 6-12 name $ 13-14 score;
  cards;
%include 'c:\Documents and Settings\Ralph\My Documents\fixed.txt';
  run;

Links

See also - Various options associated with the new statements introduced:
INFILE

%INCLUDE

LIBNAME

A library (which you can think of as a container for a collection of SAS datasets) is usefully named with a LIBNAME statement in SAS.


The example below first gives the name plato (not case sensitive) to a folder on the user's hard disk. It then saves a new (very simple) dataset in the folder (called mary) with the set of statements (between data and run) collectively called a 'data step'. The second data step also saves the dataset defined above called george in the 'plato' folder. Type and run/submit the following.

libname plato 'C:\Documents and Settings\Ralph\My Documents\Data' ;
data plato.mary ;
input x;
cards;
1
2
3
;
run;

data plato.george ;
set george;
run;

In the Windows Explorer or by double clicking My Computer you'll see that the folder My Documents/Data contains two new files called mary.sas7bdat and george.sas7bdat. On Windows the file and folder names are not case sensitive. An example of the libname statement which could be run on Unix (my user account anyway) is

libname plato '/users/rhansen/data';

In SAS for Unix the key word LIBNAME and the SAS library name PLATO are not case sensitive, but everything typed within the quotation marks is (thus a folder/directory named '/data' is different from '/Data').

To get it (them) back

Point SAS to the folder where you expect to find a SAS dataset. Examples:

libname socrates 'C:\Documents and Settings\Ralph\My Documents\Data' ;

or

libname russell '/users/rhansen/data';

We'd then be able to run

proc print data=socrates.mary;
var x;
run;
 
data newgeorge;
set socrates.george;
newage=age+3;
run;

proc print data=newgeorge;
var id name age newage;
run;

without any problems.

On Unix, if there were a very large dataset (perhaps related to Mary) in the directory /users/ralph/data called large.sas7bdat we could temporarily work with just part of it (the first 50 observations) by running:

libname russell '/users/rhansen/data' ;
data partmary ;
set russell.large (obs=>50);
run;

Explorer with one LIBNAME statement?, menu/New Library button, Library Icon

Using the SAS Explorer Let's name a library Mydata for now (library names are limited to 8 characters and shouldn't begin with a number). Type and submit

libname mydata 'C:\Documents and Settings\Ralph\My Documents\Data' ;

in the SAS Explorer window on the left, double click on the Libraries icon.

You should then see at least 5 Active Libraries (Gismaps, Mydata, Sashelp, Sasuser, and Work). Double click on the Mydata Icon to see what's already in the library. Sometimes the Explorer window isn't visible nor docked in it's usual location (if someone has closed it accidentally). When this has occurred, you can get the window back by clicking on View, and then Contents only (Note: **NOT Explorer!! **). In some rare instances you may also need to verify that in Tools, Options, Preferences, View (tab), that the Show, Docking View option is selected.

The Explorer works best as a tool to locate libraries and datasets that have already been defined, but it can also be used to create libraries. To create a New Library use the New Library icon on the toolbar.

In the New Library dialog window it will be required to provide a valid (short, 8 letter) SAS library name and to Browse to go to a valid hard disk location where you'd like to store datasets. Click OK when you have done so.

To save a a dataset in the newly created library we can either type and submit statements similar to what we did for Way #3 such as

data
mydata.george ;
set
george;
run;

or we can open a view of some existing data (using the Explorer) and save it from the File menu. This is illustrated now. Firstly, we'll find our way to some temporary data (assuming some exists in the WORK library). To move out of the Mydata library we click on the Up one level icon

which is visible when an Explorer window is active. Then, double-click on the Work library.

If WORK.George (a.k.a. George) has been created (as we did for Way #1) then it will appear in the explorer window as one of the Contents of 'Work'

Double-click on the George dataset icon. The VIEWTABLE window of Work. George will appear.

To save the George dataset permanently (while the Viewtable window is active) choose File->Save As and double-click on a library other than the scratch area Work library.

Hint: It's best to avoid the other default libaries as well (I.e. double-click on Mydata or a library you've defined)

Provide a meaningful Member name (which will be the name of your permanent dataset. We'll type George)

Click on the Save button (which should now be darkened/enabled instead of grayed out while the dialog has incomplete information)

The file created will have the name George.sas7bdat when it is viewed in Windows Explorer.

To get it back

Let's close SAS now to start with a clean session.

Create a new library any way you like (either by typing and submitting the libname statement as above) or by completing the New Library dialog (also described above)

Ex. Click on the icon on the toolbar)

It should now be a simple matter to use the Explorer window to look at the Libraries, the Mydata library (or whatever you've named 'C:\Documents and Settings\Ralph\My Documents\Data' for this session, and then to double click on Mydata.George to view it.

DATA ' '; direct access (including Unix ex.)

Direct access in a data step


Instead of making a temporary copy of a dataset when we define it, as in

data kramer;
input letter $;
cards;
A
B
C
;
run;

We could instead save it directly to a permanent location by typing:

data 'C:\Documents and Settings\Ralph\My Documents\Data\kramer';
input
letter $;
cards;
A
B
C
;
run;


If we wanted a temporary as well as a permanent copy we could type:

data kramer;
input letter $;
cards;
A
B
C
;
run;
* writes a temporary copy first;
data 'C:\Documents and Settings\Ralph\My Documents\Data\kramer';
set kramer;
run;
* then a permanent copy is made;


To get it back

(notice,) we can use direct access on the set statement (reversing the read/write direction):

data kramer;
set 'C:\Documents and Settings\Ralph\My Documents\Data\kramer';
run;


To create a permanent and temporary copy of a dataset we could alternatively have typed:

data 'C:\Documents and Settings\Ralph\My Documents\Data\kramer' kramer;
input letter $;
cards;
A
B
C
;
run;


which follows a typical syntax for creating two datasets from one, as in:

data k1 k2;
set kramer;
run;


Links:

In Excel Save As .XLS

– Using

Excel to save data, and then importing it


Problems can occur when more than one application is used to store and work with data, and Excel does not have formatting options (such as variable labels and formats) that will transfer to SAS, but SAS is well-integrated with Excel for simple data transfer.

In Excel, preparing your data. First, prepare and examine your data in Excel. The easiest way to structure your dataset (anticipating transfer to SAS for further analysis) is to use a single sheet that contains a rectangular data table. You may place long names (even column names that contain spaces) as column headers, or bypass Excel-given column names altogether, but it may be simplest to name the columns using short eight-letter names. Labels may be added later.


Secondly, if you anticipate keeping only part of your spreadsheet (i.e. if only part of it is actually a table of data) then you may want to use Range Names. For example, let's say we wanted to keep some classroom information as formatted Excel spreadsheet

We could define Range B4:E9 as the data we'd like to analyze … specifically naming the range 'data'. First select the range (which includes column header names in this instance). Then choose Insert, Name, Define… to open the Define Name window

To define a name for the B4:E9 range we type 'data' in the name field (replacing the word 'id') then click on OK. Alternatively, we could select/highlight the range, then click in the Name box (to the left of the = on the formula bar)


and replace the cell address B4 with the Range name 'data'.


Finally, (importantly!) Save and close the Excel spreadsheet! (If you encounter an '…IML … share' error in SAS while importing data, it is because you have left the Excel sheet open.


To get it back (/ to get the Excel data): In SAS, choose File, Import Data to start the Import Wizard

Click on Next with out changing the data source/import type. Click on Browse to locate where you have saved the Class2005.xls data file. Choose the file (the spreadsheet) and click Open. Click on OK. Choose data (instead of one of the sheets (Sheet1$, Sheet2$, or Sheet3$)) as the table you want to import. (Click the options button to …) Check that the Options are correctly set as you'd like.


Click on Next. Type in a valid dataset name (or member) as your SAS Destination.


Click on Finish. The PROC IMPORT statements (bundled in a .SAS program file) that might be created by the 'Next' step of the wizard is discussed in the next section/way.


You will know if the import was successful by examining the SAS Log file. There should be a note in the LOG file such as NOTE: WORK.CLASS was successfully created.


Further verification is easy to get by typing and submitting a program like:

proc
contents
data=class;
run;


proc
print
data=class
(obs=>10);
run;


Links: PROC IMPORT (and to example)

In Excel Save As CSV (move to Unix, SSH)

Saving, moving and reading CSV files To save a spreadsheet such as the Class2005 spreadsheet discussed in the Way #6 section we will first want to follow several of the preparations of the data as described in the previous section. Attention is neede re: the column headers and where the actual data resides on the sheet (in the workbook).

In addition (for CSV files) we may remove some of the sheet titles ('Class Information –2005') and padding rows and columns to simplify the import into SAS later on.

For example, let's first remove rows 1-3 and column A from above so that we have the following.

Next, choose File, Save as .., then select the File Type (.CSV) to save the data as a comma-separated value format. We should pay close attention to where this file is saved and be certain that the file ends with a .CSV extension. On some systems an H: drive link to the Bingsuns platform may be set up so that you can directly save the CSV file to a Unix platform.

Click on OK to Save only the active sheet since we can't save multiple sheets as a Comma Delimited file.

We'll also see

Click on Yes because we are not concerned about formatting (bold text, italics, alignment) We just want the data in separate columns.

Close the Excel program now. When asked if you'd like to save changes, you may choose 'Yes' or 'No' to continue inconsequentially. You must, however, close the Excel program before attempting to read the CSV file in SAS.


If we had saved the file in a folder called 'C:\Documents and Settings\Ralph\New Folder' we might now see the following when we examine the folder with Windows Explorer.

A CSV file is actually simple text. Most Windows systems will change the icon appearance of the file and use Excel to open it, but we can bypass this default and look at the text by Right-clicking the icon and choosing to open it with Notepad or WordPad.

To get it back(in SAS for Windows)

We can use the Import Wizard (Choose File, Import Data…and Comma Separated Values (*.csv) among the Standard data import types). In the next step you may also check that the Import Options are properly set to 'get the variable names from the first row' and to begin reading data values in the second row.

Instead of using the menu we could submit/run the following code

PROC IMPORT OUT=WORK.CLASS 
DATAFILE="C:\Documents and Settings\Ralph\New 
Folder\class2005varsonly.csv"
   DBMS=CSV
   REPLACE;
   GETNAMES=YES;
   DATAROW=>2;
RUN;

To Move (Upload) the CSV File from Windows to Unix

You may need to use a File Transfer client such as WS_FTP or a secure/encrypted file transfer tool like "SSH File Transfer" (see SSH Documentation for details)

It's best to transfer the CSV document as Plain/ASCII text instead of Binary (o.w. ^M will appear in the Unix text file).

To get the data back (on Unix)

We'll use the following code:

libname here ".";
datahere.class2;
infile "class2005varsonly.csv" dsd 
    delimiter=","
    firstobs=>2;
input id age score name $ ;
run;

It may be necessary to experiment with some of the INFILE options (ex. TRUNCOVER, MISSOVER, DSD …) and with character string lengths and informats (on the INPUT statement ex. "…name $20. ;" or in a LENGTH statement) when you need to transfer long text variables or dates (see below).

Links

http://v9doc.sas.com IMPORT, CSV, INFILE, SSH, LENGTH, Informats

In SPSS Save as

Saving data in SPSS to be read by SAS


In SPSS, there are several pieces of information that we'd probably want to keep when we save the data (even if we plan to analyze it with SAS. Apart from variable names and the simple variable type information (i.e. Is the variable a Character or Numeric variable?) we'd also like to keep Variable Labels and Value Labels. Variable Labels are long names (text) for the shorter variable names which appear as the head of variable columns in the SPSS Data Editor. The longer text is what we'd like to appear on print outs of results. In the following example, "Age group" is the Variable label for the variable "group".


The example illustrated here also includes Value labels. While the variable "group" is Numeric, it contains the values 1 and 2. A 1 indicates "Young" clients, and a 2 represents "Old" clients (relatively speaking). These are visable in the Data editor because the "Value labels" button ( ) is depressed.



In SPSS, to Save data in a format that is readable by SAS we choose File, Save as…, and click on the "Save as type" options to see the list of file types and data formats other than SPSS (.sav) formats available to us.



The options we are interested in are SAS v7 longextension SAS v7 for Unix SAS xpt file (see next way)


though a few others may be readable by SAS as well.


After selecting the SAS v7 longextension type we will see that the option of chosing

"Save value labels into a .sas file"

is also available to us.


Click on this so that a small .sas program is written which will associate the values 1 and 2 with their labels.


Now click on the Save button (unless you'd like to save only some of the variables using "Variables…" button).


The SPSS Output file message shows us

Data written to C:\Documents and Settings\...\Data\class2005a.sas7bdat. 5 variables and 5 cases written. Variable: id Type: Number Width: 11 Dec: 0 Variable: age Type: Number Width: 11 Dec: 0 Variable: score Type: Number Width: 11 Dec: 0 Variable: name Type: String Width: 6 Variable: group Type: Number Width: 8 Dec: 0


Value labels written to C:\Documents and Settings\Ralph\My Documents\Data\class

indicating that two files have been created in the C:\Documents and Settings\Ralph\My Documents\Data\ folder. The path name is too long for us to see the full name of the .sas file with labels, but we'll see that it is called "class2005a.sas".


We can see the contents of this file, if we like, using any word processor or editor (or opening the file from the Windows Explorer.

libname library 'c:\documents and settings\ralph\my documents\data\' ;

proc format library = library ;
  value group /* Age group */
  1 = 'Young'  
  2 = 'Old' ;
proc datasets library = library ;
modify class2005a;
    format group group.;
quit;


To get it (our data) back

In SAS, as we did for Way #3, if we point SAS to the folder where we expect to find a SAS dataset (such as)

libname socrates 'C:\Documents and Settings\Ralph\My Documents\Data' ;


and then try to print the data

proc print data=socrates.class2005a;
run;


We'll see that our dataset depends upon having a definition for the "group" format.


ERROR: Format group not found or couldn't be loaded for variable group.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE PRINT used (Total process time):
real time           0.68 seconds
cpu time            0.00 seconds


We can also see this by running:

proc contents data=socrates.class2005a;
run;

Which shows us

                     The CONTENTS Procedure

Data Set Name        SOCRATES.CLASS2005A                  Observations     5
Member Type          DATA                                 Variables        5

...(and other information)

File Name                   C:\Documents and Settings\Ralph\My
                            Documents\Data\class2005a.sas7bdat
Release Created             9.0000M0
Host Created                WIN

 
                    Alphabetic List of Variables and Attributes
 
                     #    Variable    Type    Len    Format     Label
                     2    age         Num       8
                     5    group       Num       8    group5.    Age group
                     1    id          Num       8
                     4    name        Char      6
                     3    score       Num       8


Instead we should ensure that the group. format defined by adding an include statement, running the following instead. (group5. above indicates that the 'length' of the format is 5 characters. Defining group. is sufficient.)


libname socrates 'C:\Documents and Settings\Ralph\My Documents\Data' ;

%include 'C:\Documents and Settings\Ralph\My Documents\Data\class2005a.sas';


proc
print
data=socrates.class2005a;
run;
proc
contents
data=socrates.class2005a;
run;

In SAS Save as XPT file

SAS Transport (.XPT) files Save a SAS xport file


If you plan to move datasets across different operating systems (though this method is unneccessary between Windows and Unix), or you're working with data from older versions of SAS you may want to save your datasets as Transport (XPORT) files. A tranport file can contain multiple datasets and other types of SAS files (CATALOGS, VIEWS, etc.). Traditionally the XPORT engine is used to create and retrieve Transport files. Using CPORT and CIMPORT procedures are a separate method of moving and translating files (see references).


Let's begin by being clear about where the datasets are originally stored (which folder) and what kinds of files are created. It will seem odd (at first, but it is technically correct) that a LIBNAME statement below is used both for naming a folder (where the datasets originate) AND to name a FILE (which looks like a single icon/document in Windows), but it contains several datasets to SAS (just as a folder might).


The following creates two small datasets in My Documents/Data folder.

libname socrates 'C:\Documents and Settings\Ralph\My Documents\Data' ;
data socrates.newman;
input x @@ ;
cards;
1 2 3 4 5 6 ;
run;
data socrates.george;
input c $ @@ ;
cards;
A B C D E;
run;


Then we define a destination for the two datasets (which are placed into a single transport file/document)

libname jerry xport 'C:\Documents and Settings\Ralph\My Documents\apartment.xpt';
proc copy in=socrates out=jerry memtype=data;
run;

If we had want to save only the George dataset we would have added a select statement, as in

libname jerry xport 'C:\Documents and Settings\Ralph\My Documents\apartment.xpt';
proc copy in=socrates out=jerry memtype=data;
select george;
run;

To get the data back we define the source of the data this time originating in the apartment.xpt file.

libname jerry xport 'C:\Documents and Settings\Ralph\My Documents\apartment.xpt';

Any name other than 'Jerry' could be used, and of course the location of the transport file can be changed (esp. if you decide to move the file to a new machine).

The library (JERRY) works like any other library (though you should save other datasets or objects from different SAS versions into it). We can print datasets or make temporary copies of the datasets in JERRY just as we've done earlier. For example:

proc print data=jerry.george;
run;
data tempnew;
set jerry.newman;
run;
proc print data=tempnew;
run;

XML

XML files read directly into SAS


<?xml version="1.0" encoding="windows-1252" ?> 
 <CLIMATE>
   <HIGHTEMP>
       <PLACE> Libya </PLACE>
       <DATE> 1922-09-13 </DATE>
       <DEGREE-F> 136 </DEGREE-F>
      <DEGREE-C> 58 </DEGREE-C>
   </HIGHTEMP>
   <HIGHTEMP>
      <PLACE> NYState </PLACE>
      <DATE> 2005-06-13 </DATE>
      <DEGREE-F> 80 </DEGREE-F>
      <DEGREE-C> 25.8 </DEGREE-C>
   </HIGHTEMP>
   <LOWTEMP>
      <PLACE> Antarctica </PLACE>
      <DATE> 1983-07-21 </DATE>
      <DEGREE-F> -129 </DEGREE-F>
   </LOWTEMP>
</CLIMATE>
 

To get it back libname test xml 'C:\Documents and Settings\Ralph\My Documents\Data\xml\temps.xml';


proc datasets library=test;
quit;
proc print data=test.hightemp;
run;
proc print data=test.lowtemp;
run;


See generic XML template sent by Tom Links: http://support.sas.com/onlinedoc/913/getDoc/en/engxml.hlp/a002592973.htm

LIBNAME sasengine

Using the SAS LIBNAME engine options


Occasionally, in online repositories, or when you are receiving data from a source who is not using the latest version SAS on his/her machine, you may get a 'SAS dataset' that has been saved in a older format that cannot be read directly by a simple libname or filename statement (or by other methods mentioned above). Several of these older formats are still formats that SAS handles well (such as older versions of SAS and CSV (comma separated values)) when you tell SAS what type of file it is trying to read in a LIBNAME statement. This section will also describe how to read the newer SASECRSP-type datasets that is a specialized Stock/Financial Data base. All these types use the SAS Engine option on a LIBNAME statement.


The syntax for the LIBNAME statement is

LIBNAME libref <engine> 'SAS-data-library'  <options> <engine/host-options>;

This means that you can read a variety of different dataset types such as those mentioned by using statements like the following (using THOMAS as our libref name):

LIBNAME thomas SASECRSP 'C:\Documents and Settings\Ralph\My Documents\Data\LIB1';

which tells SAS that the folder pointed to as 'thomas' is a repository (library) for CRSP data, or

LIBNAME thomas CSV 'C:\Documents and Settings\Ralph\My Documents\Data\LIB2';

prepares the LIB2 folder for CSV files, or

LIBNAME thomas V8 'C:\Documents and Settings\Ralph\My Documents\Data\LIB3';

means that the LIB3 folder will hold SAS version 8 (it may not be uncommon at this time to be required to work with files from version 7 (the V7 engine) or even version 6 file (V6).

Let's first save a sample dataset as a SAS Version 8 file using SAS.

*At first we'll make a temporary copy;
data jerry;
   input id age score name $;
cards;
101 19 97 Harry
102 20 80 Sally
103 25 85 George
104 18 70 Mary
105 30 94 Jane
;
run;


When you declare that a certain folder (location) will be used to store permanent datasets using a particular SAS engine, then those datasets that you save in that folder using the associated LIBNAME (i.e. pairing the dataset name (a member) with the first part of it's permanent name, as in OLDFILES.JERRY) then the dataset is saved in the 'engine' format (in other words 'saved… using that engine'). So, if we'd like to save JERRY as a SAS Version 8 file we can submit the following:

* Then we'll save it permanently on our Windows machine. OLDFILES is how ;
* we'll refer to the library. It's our libref like Thomas was above;
libname OLDFILES V8 'C:\Documents and Settings\Ralph\My Documents\Data\LIB2';
data OLDFILES.jerry;
set jerry;
run;

To get it back

libname OLDFILES V8 'C:\Documents and Settings\Ralph\My Documents\Data\LIB2';
data jerry;
set OLDFILES.jerry;
run;

See also: Documentation Online More on SAS engines http://support.sas.com/onlinedoc/913/getDoc/en/lrcon.hlp/a001302065.htm



Main Index for SASECRSP Engine in SAS v9 http://v9doc.sas.com/cgi-bin/sasdoc/cgigdoc?file=../etsug.hlp/sasecrsp_index.htm



SASECRSP in ETS User's Guide http://v9doc.sas.com/cgi-bin/sasdoc/cgigdoc?file=../etsug.hlp/sasecrsp_sect9.htm


is particularly informative - The SASECRSP Interface Engine - The LIBNAME libref SASECRSP Statement


Other example programs using CRSP and documentation can be found at http://statmart.cc.binghamton.edu/BU_Documentation/CRSP2003/

DBF (to be written)

Using DBF files directly in SAS

Saving a DBF (from Access?)

To get it back



See also:

Online help to access DBF files in SAS

http://support.sas.com/onlinedoc/913/getDoc/en/acpcref.hlp/a000213690.htm

13 ?PROC DATASOURCE?, ?Stata, ?S-Plus (to be written)

PROC DATASOURCE? (for COMPUSTAT files), Stata?, S-Plus?


Further notes on CSV files (and tables published on the Internet).


Further notes on CRSP data (SASCRSPE engine).

Main Index for SASECRSP Engine in SAS v9 http://v9doc.sas.com/cgi-bin/sasdoc/cgigdoc?file=../etsug.hlp/sasecrsp_index.htm



SASECRSP in ETS User's Guide http://v9doc.sas.com/cgi-bin/sasdoc/cgigdoc?file=../etsug.hlp/sasecrsp_sect9.htm


is particularly informative - The SASECRSP Interface Engine - The LIBNAME libref SASECRSP Statement


Other example programs using CRSP and documentation can be found at http://statmart.cc.binghamton.edu/BU_Documentation/CRSP2003/



Notes on ICPSR (rectangular, hierarchical, flat data files).


Notes on multiline data?


Minitab/Mathematica to SAS


Working with Census data


Working with GIS (Spatial data)

Personal tools