70
Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to large-scale study data management using SAS

By Jimmy Ardiansyah, PMP

October 2, 2009

Page 2: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

RFTS Website (www.mom2be.org)

Study Facts

Page 3: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Right From the Start (RFTS)

• Early Pregnancy Health Study

• Started on 1999

• Vanderbilt University study in collaboration with the University of North Carolina

• Approximately 1400 variables

• Approximately 40 tables

• Approximately 8500 participants from NC, TN and TX

• Database: Oracle, MySQL and Access

• Funded by the National Institute of Child Health and Human

Development (NICHD)

Study Facts

Page 4: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 5: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 6: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 7: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 8: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 9: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 10: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 11: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 12: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 13: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 14: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 15: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Merging Process

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Data Cleaning

Using SAS

Convert Flat Files using SAS

Cleaned SAS DatasetSAS Dataset Audit

Final Common Dataset

Page 16: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Data Cleaning

Using SAS

Merging ProcessCleaned SAS Dataset

Convert Flat Files using SAS Data Cleaning

Using SAS

Data Cleaning

Using SAS

SAS Dataset Audit

Final Common Dataset

Page 17: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Data Cleaning

Using SAS

Merging ProcessCleaned SAS Dataset

Convert Flat Files using SAS Data Cleaning

Using SAS

Data Cleaning

Using SAS

SAS Dataset Audit

Final Common Dataset

Page 18: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Physical Design Schema

Medical Records

Screening Apps

Battelle (CATI Interview)

REDCap

Oracle DatabaseVital Records

Data Cleaning

Using SAS

Merging ProcessCleaned SAS Dataset

Convert Flat Files using SAS Data Cleaning

Using SAS

Data Cleaning

Using SAS

SAS Dataset Audit

Final Common Dataset

Page 19: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Diary/Weekly Database Schema

Web Application

MySQL Database

Transfers Into

.CSV Files

Convert into SAS Dataset

Cleaned SAS DatasetSAS Dataset Audit

Reports

Page 20: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Layout for data file PATIENTS.TXT

0 or 1Character127AdverseEventAE

1 to 3 digit numeral Character324DiagnosisCodeDx

between 60 and 120Numeric321

DiastolicBloodPressure DBP

between 80 and 200Numeric318Systolic BloodPressureSBP

Between 40 and 100Numeric315Heart RateHR

Any valid dateMMDDYY10105Visit DateVisit

M or FCharacter14GenderGender

Numeral OnlyCharacter31PatientNumberPatNo

Valid ValuesVariable TypeLengthStarting CoolumDescriptionVariable Name

Page 21: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Page 22: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

PatNo

Page 23: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Gender

Page 24: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Visit Date

Page 25: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

SAS Code to covert flat file into SAS Dataset

Page 26: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

SAS Code to covert flat file into SAS Dataset

Page 27: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

SAS Code to covert flat file into SAS Dataset

Page 28: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

SAS Code to covert flat file into SAS Dataset

Page 29: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Conversions Result

Page 30: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using PROC FREQ to List All the Unique Values

Page 31: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

PROC FREQ Output

Page 32: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

PROC PRINT to List Invalid Character Data

Page 33: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

PROC PRINT Output

Page 34: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using WHERE Statement with PROC PRINT to list Out-of-Range Data

Page 35: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using WHERE Statement with PROC PRINT Output

Page 36: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

PROC FORMAT to Check for Invalid Value

Page 37: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

PROC FORMAT to Check for Invalid Value

Page 38: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

PROC Format Output

Page 39: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using a User-Defined Format with INPUT function

Page 40: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using a User-Defined Format with INPUT function

Page 41: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using a User-Defined Format Output

Page 42: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using PROC MEANS to Detect Invalid and Missing

Page 43: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using PROC MEANS Output

Page 44: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using PROC UNIVARIATE to Look for Outliers

Page 45: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using PROC UNIVARIATE Output (partial)

Page 46: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Reading Date in Data

Page 47: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Reading Date in Data

Page 48: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Reading Date in Data

Page 49: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to SAS

Using SAS function for Making Variable

Page 50: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Convert SAS Dataset

From SAS to SPSS

PROC EXPORT data=mydata outfile= "C:\data\newdata3.sav"; run;

From SAS to STATA

PROC EXPORT data=mydata outfile= "C:\data\newdata3.dta"; run;

Page 51: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to PROC SQL

• Can retrieve information without having to learn SAS syntax

• Normally shorter and fewer statement that traditional SAS Code

• SQL often uses fewer computing resources that conventional DATA and PROC steps

• The knowledge learned is transferable to other SQL proprietary languages such as ANSI SQL, T-SQL, PL/SQL

Why Learn PROC SQL

Page 52: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to PROC SQL

• libname rfts_connoracle user=vanderbilt password=vanderbilt path='PTPROD.OAS.VANDERBILT' schema=rfts_prod_schema preserve_col_names=yes

access=readonly;

Connecting to Oracle Database

Page 53: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to PROC SQL

• PROC SQL:SELECT count(*)FROM CDS.SCREENING ;QUIT;

A Simple PROC SQL

Page 54: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to PROC SQL

• PROC SQL:SELECT name, substr(phone,1,3) LABEL=‘AREA CODE’FROM participants ;QUIT;

Creating New Variables

Page 55: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to PROC SQL

• PROC SQL;SELECT name, (income * .05) as tax,

(CALCULATED tax * .01) as rebate FROM participants ;QUIT;

The CALCULATED OPTION

Page 56: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to PROC SQL

• PROC SQL:SELECT name, CASE

WHEN income <60000 THEN ‘LOW’WHEN income =<90000 THEN ‘AVG’WHEN income >60000 THEN ‘HIGH’ELSE ‘ VERY HIGH’

END as income_catergory FROM participants ;QUIT;

Using CASE Logic inside SELECT Statement

Page 57: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Introduction to PROC SQL

• PROC SQL;CREATE TABLE tbl_income asSELECT name, CASE

WHEN income <60000 THEN ‘LOW’WHEN income =<90000 THEN ‘AVG’WHEN income >60000 THEN ‘HIGH’ELSE ‘ VERY HIGH’

END as income_catergory FROM participants ;QUIT;

Creating New Table based on SELECT statement

Page 58: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Using PROC DBLOAD

• PROC DBLOAD DBMS=oracle DATA=tbl_income append;USER=vanderbilt;PASSWORD=vanderbilt;PATH=‘ptprod.oas.vanderbilt‘;TABLE=tbl_participant_income;COMMIT=10000;ERRLIMIT=5;LOAD;RUN;

Upload New Table into Oracle Database

Page 59: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

Inner Join

A B

Outer Join

A B A B A B

Left Outer Join Right Outer Join Full Outer Join

d4

b2

a1

AX

TBL_ONE

v5

y3

x2

BX

TBL_TWO

Page 60: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONEInner Join

A B

PROC SQL;SELECT * FROM tbl_one, tbl_twoWHERE tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 61: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONEInner Join

A B

PROC SQL;SELECT * FROM tbl_one, tbl_twoWHERE tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 62: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONELeft Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneLEFT JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 63: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONELeft Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneLEFT JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 64: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONELeft Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneLEFT JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 65: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONELeft Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneLEFT JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 66: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONELeft Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneRIGHT JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 67: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONELeft Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneRIGHT JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 68: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONEFull Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneFULL JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 69: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Combining Tables Horizontally using PROC SQL

d4

b2

a1

AX

TBL_ONEFull Outer Join

A B

PROC SQL;SELECT * FROM tbl_oneFULL JOINtbl_twoon tbl_one.x = tbl_two.x;QUIT;

v5

y3

x2

BX

TBL_TWO

Page 70: Introduction to large-scale study data management using SAS · 02-10-2009  · Introduction to large-scale study data management using SAS By Jimmy Ardiansyah, PMP October 2, 2009

Comparing PROC SQL and SAS

Left Outer Join

PROC SQL;SELECT * FROM tbl_one, tbl_twowhere tbl_one.x = tbl_two.xorder by tbl_one.x;QUIT;

PROC SORT DATA=tbl_one; BY x; RUN;

PROC SORT DATA=tbl_two; BY x; RUN;

DATA merged;MERGE tbl_one tbl_two;BY x;RUN;

PROC SORT DATA=merged; BY x; RUN;