Clinical trials:
Clinical Trails
Clinical Trials Terminology for SAS Programmers
A Simple Solution for Managing the Validation of SAS Programs
Electronic Clinical Data Capture
Pharmaceutical Programming: From CRFs to Tables, Listings and Graphs
SAS Programming in the Pharmaceutical Industry
SASâ Programming Career Choices In The Health Care Industry
Some Statistical Programming Considerations for e-Submission
The Changing Nature of SAS Programming in the Pharmaceuticals Industry
Managing Clinical Trials Data using SAS® Software
Quality Control and Quality Assurance in Clinical Research: SAS
CDISC:
An Introduction to CDISC:
CDISC: Why SAS® Programmers Need to Know
CDISC Implementation Step by Step: A Real World Example
CDISC standards
Supporting the CDISC standards
How to test CDISC Operation data Model (ODM) in SAS
The Use of CDISC Standards in SAS from Data Capture to Reporting
Clinical Data Model and FDA/CDISC Submissions
Creating Case Report Tabulations (CRTs) for an NDA Electronic Submission to the FDA
SDTM-annotated CRFs
Data Integrity through DEFINE.PDF and DEFINE.XML
SAS® and the CDISC (Clinical Data Interchange Standards Consortium)
Implementing an Audit Trail within a Clinical Reporting Tool
The CDISC ODM Study Designer :User Manual
XML Basics for SAS Programmers
Annotation of CRFs:
Trial eCRF Pages
Using SAS to Speed up Annotating Case Report Forms in PDF Format
ANNOTATED CASE REPORT FORM AUTOMATION SYSTEM
Annotated CRF 1: Download(CTN0008_SDTM_annotation_20070413.pdf - 2179Kb) Annotated CRF 2: Download(CTN001_SDTM_ANNOTATION_20070330.pdf - 564Kb) Annotated CRF 3: Download(CTN002_SDTM_ANNOTATION_20070403.pdf - 560Kb)
Study Protocol 1: Download
(NIDA-CTN-0001_Bup_Nx_vs_Clonidine_Inpatient_Protocol_v.5b_112700.pdf - 192Kb)
Welcome to StudySAS, your ultimate guide to clinical data management using SAS. We cover essential topics like SDTM, CDISC standards, and Define.XML, alongside advanced PROC SQL and SAS Macros techniques. Whether you're enhancing your programming efficiency or ensuring compliance with industry standards, StudySAS offers practical tips and insights to elevate your clinical research expertise. Join us and stay ahead in the evolving world of clinical data.
Discover More Tips and Techniques on This Blog
Online Study materials:
Fundamentals of Using SAS (part I)
Introduction to SAS
Descriptive information and statistics
An overview of statistical tests in SAS
Exploring data with graphics
Fundamentals of Using SAS (part II)
Using where with SAS procedures
Missing values in SAS
Common SAS options
Overview of SAS syntax of SAS procedures
Common error messages in SAS
Reading Raw Data into SAS
Inputting raw data into SAS
Reading dates into SAS and using date variables
Basic Data Management in SAS
Creating and recoding variables
Using SAS functions for making/recoding variables
Subsetting variables and observations
Labeling data, variables, and values
Using PROC SORT and the BY statement
Making and using permanent SAS data files (version 8)
Data Management:
How do I make unique anonymous ID variables for my data?
How can I create an enumeration variable by groups?
How can I see the number of missing values and patterns of missing values in my data file?
How can I count the number of missing values for a character variable?
How can I increment dates in SAS?How can I find things in a character variable in SAS?
How do I standardize variables (make them have a mean of 0 and sd of 1)?
Is there a quick way to create dummy variables?
Reading/Writing Data Files
How do I read a file that uses commas, tabs or spaces as delimiters to separate variables?
How do I read a delimited file with missing values?
How do I read a delimited file that has delimiters embedded in the data?
What are some common infile options for reading a raw data file?
How do I read raw data files compressed with gzip (.gz files) in SAS?
How do I write a data file that uses commas, tabs or spaces as delimiters between variables?How do I read/write Excel files in SAS version 8?
Reading/Writing SAS Files with Formats
How do I use a SAS data file with a format library?
How do I use a SAS data file when I don't have its format library?
Other:
How can I change the way variables are displayed in proc freq?
How can I put a value from a data file to a macro variable?
How can I create tables using proc tabulate?
My SAS Manuals: 1. Basic and 2. Applications (Preliminary Version) ZIP file (about 400meg)
source:www.estat.com
Procedures
PROC MEANS More than just your average procedure(PDF) by Peter R. Welbrock
The power of PROC FORMAT(PDF) by Jonas V. Bilenas
Ten Things You Should Know About PROC FORMAT(PDF) by Jack Shoemaker
PROC SQL for DATA Step Die-Hards(PDF) by Christianna S. Williams
An Introduction to the SQL Procedure(PDF) by Chris Yindra
Alternatives to Merging SAS Data Sets … But Be Careful(PDF) by Michael J. Wieczkowski
Handling Missing Values in the SQL Procedure(PDF) by Danbo Yi & MA Lei Zhang
Creating and using indexes in SASCreating and using formats and format libraries in SAS
Using multidimensional arraysGood Programming Practices
Bulletproofing Your SAS Results(PDF) by Vanessa Hayden
Clean-up, Comments and Code - Making it Maintainable(PDF) by Clay and Lori MartinSAS Program Efficiency for Beginners(PDF) by Bruce Gilsen
Coding for Posterity(PDF) by Rick AsterOutput Delivery System(ODS)
ODS, YES! Odious, NO! – An Introduction to the SAS Output Delivery System(PDF) by Lara Bryant, Sally Muller & Ray Pass
ODS for Data Analysis: Output As-You-Like-It in Version 7(PDF) by Christopher R. Olinger and Randall D. Tobias, from SUGI Proceedings, 1998, courtesy of SAS.
Making the SAS Output Delivery System (ODS) work for you(PDF) by William Fehlner, from SUGI Proceedings, 1999, courtesy of SAS.
Twisty Little Passages All Alike, Output Delivery System (ODS) Templates Exposed(PDF) by Chris Olinger, from SUGI Proceedings, 1999, courtesy of SAS.
Converting Multiple SAS Output Files to Rich Text Format Automatically without Using ODS
SAS Macros
Getting Started with Macros(PDF) by Ian Whitlock
Moving from Macro Variables to Macros(PDF) by Lisa Sanbonmatsu
Macros from Beginning to Mend A Simple and Practical Approach to the SAS Macro Facility(PDF) by Michael G. Sadof
An Introduction to Macro Variables and Macro Programs(PDF) by Mike S. Zdeb
Creating Macro Variables via PROC SQL(PDF) by Mike S. Zdeb
More About “INTO:Host-Variable” in PROC SQL: Examples(PDF) by John Q. Zhang
Macro Quoting Functions, Other Special Character Masking Tools, and How To Use Them(PDF) by Arthur L. Carpenter
Secrets of Macro Quoting Functions – How and Why(PDF) by Susan O’Connor
&&&, ;;, and Other Hieroglyphics Advanced Macro Topics(PDF) by Chris Yindra, C. YDeveloping, Managing, and Evaluating a Standard Macro System by Albert MoPROC SQL:
An Introduction to Proc SqlTop Ten Reasons to Use PROC SQL
ENTERPRISE GUIDE:
SAS Enterprise Guide for SAS Programmers
Using SAS® Enterprise Guide® to Code When You’re Not aProgrammer
The New World of SAS®: Programming with SAS® EnterpriseGuide®
SAS Enterprise Guide:Data Manipulation, Reports,& Statistical Procedures
Introduction to Using SAS® Enterprise Guide® for Statistical Analysis
SAS Graph:
Improving Your Graphics Using SAS/GRAPH® Annotate Facility
A Powerful Macro to Control Title Appearance in SAS/GRAPH® OutputSAS/GRAPH® 101
Using ODS Styles with SAS/GRAPH®
ODS Statistical Graphics for Clinical Research
Know Your AREA!Creating Professional SAS® Graphics in Clinical Safety Data byUsing the AREAS Option in PROC GPLOT.
Other
Debugging 101(PDF) by Peter Knapp
Those Missing Values in Questionnaires(PDF) by John R. Gerlach & Cindy Garra
Avoiding Mayhem in the New Millennium: Working with Missing Data(PDF) by JoAnn Matthews
Simplifying Complex Character Comparisons by Using the IN Operator and the Colon (:) Operator Modifier(PDF) by Paul Grant
Arrays: In and Out and All About(PDF) by Marge Scerbo
Complex Arrays Made Simple(PDF) by Mary McDonald, PaineWebber Incorporated
You Could Look It Up: An Introduction to SASHELP Dictionary Views(PDF) by Michael Davis, The 'SKIP' Statement(PDF) by Paul Grant
Indexing and Compressing SAS Data Sets: How, Why, and Why Not(PDF) Andrew H. Karp,
Automating the Creation of a Single Bookmarked PDF Documentfrom Multiple SAS® ASCII and PostScript® Output Files Be Careful When You Merge SAS Datasets!
courtesy of NESUG
Introduction to SAS
Descriptive information and statistics
An overview of statistical tests in SAS
Exploring data with graphics
Fundamentals of Using SAS (part II)
Using where with SAS procedures
Missing values in SAS
Common SAS options
Overview of SAS syntax of SAS procedures
Common error messages in SAS
Reading Raw Data into SAS
Inputting raw data into SAS
Reading dates into SAS and using date variables
Basic Data Management in SAS
Creating and recoding variables
Using SAS functions for making/recoding variables
Subsetting variables and observations
Labeling data, variables, and values
Using PROC SORT and the BY statement
Making and using permanent SAS data files (version 8)
Data Management:
How do I make unique anonymous ID variables for my data?
How can I create an enumeration variable by groups?
How can I see the number of missing values and patterns of missing values in my data file?
How can I count the number of missing values for a character variable?
How can I increment dates in SAS?How can I find things in a character variable in SAS?
How do I standardize variables (make them have a mean of 0 and sd of 1)?
Is there a quick way to create dummy variables?
Reading/Writing Data Files
How do I read a file that uses commas, tabs or spaces as delimiters to separate variables?
How do I read a delimited file with missing values?
How do I read a delimited file that has delimiters embedded in the data?
What are some common infile options for reading a raw data file?
How do I read raw data files compressed with gzip (.gz files) in SAS?
How do I write a data file that uses commas, tabs or spaces as delimiters between variables?How do I read/write Excel files in SAS version 8?
Reading/Writing SAS Files with Formats
How do I use a SAS data file with a format library?
How do I use a SAS data file when I don't have its format library?
Other:
How can I change the way variables are displayed in proc freq?
How can I put a value from a data file to a macro variable?
How can I create tables using proc tabulate?
My SAS Manuals: 1. Basic and 2. Applications (Preliminary Version) ZIP file (about 400meg)
source:www.estat.com
Procedures
PROC MEANS More than just your average procedure(PDF) by Peter R. Welbrock
The power of PROC FORMAT(PDF) by Jonas V. Bilenas
Ten Things You Should Know About PROC FORMAT(PDF) by Jack Shoemaker
PROC SQL for DATA Step Die-Hards(PDF) by Christianna S. Williams
An Introduction to the SQL Procedure(PDF) by Chris Yindra
Alternatives to Merging SAS Data Sets … But Be Careful(PDF) by Michael J. Wieczkowski
Handling Missing Values in the SQL Procedure(PDF) by Danbo Yi & MA Lei Zhang
Creating and using indexes in SASCreating and using formats and format libraries in SAS
Using multidimensional arraysGood Programming Practices
Bulletproofing Your SAS Results(PDF) by Vanessa Hayden
Clean-up, Comments and Code - Making it Maintainable(PDF) by Clay and Lori MartinSAS Program Efficiency for Beginners(PDF) by Bruce Gilsen
Coding for Posterity(PDF) by Rick AsterOutput Delivery System(ODS)
ODS, YES! Odious, NO! – An Introduction to the SAS Output Delivery System(PDF) by Lara Bryant, Sally Muller & Ray Pass
ODS for Data Analysis: Output As-You-Like-It in Version 7(PDF) by Christopher R. Olinger and Randall D. Tobias, from SUGI Proceedings, 1998, courtesy of SAS.
Making the SAS Output Delivery System (ODS) work for you(PDF) by William Fehlner, from SUGI Proceedings, 1999, courtesy of SAS.
Twisty Little Passages All Alike, Output Delivery System (ODS) Templates Exposed(PDF) by Chris Olinger, from SUGI Proceedings, 1999, courtesy of SAS.
Converting Multiple SAS Output Files to Rich Text Format Automatically without Using ODS
SAS Macros
Getting Started with Macros(PDF) by Ian Whitlock
Moving from Macro Variables to Macros(PDF) by Lisa Sanbonmatsu
Macros from Beginning to Mend A Simple and Practical Approach to the SAS Macro Facility(PDF) by Michael G. Sadof
An Introduction to Macro Variables and Macro Programs(PDF) by Mike S. Zdeb
Creating Macro Variables via PROC SQL(PDF) by Mike S. Zdeb
More About “INTO:Host-Variable” in PROC SQL: Examples(PDF) by John Q. Zhang
Macro Quoting Functions, Other Special Character Masking Tools, and How To Use Them(PDF) by Arthur L. Carpenter
Secrets of Macro Quoting Functions – How and Why(PDF) by Susan O’Connor
&&&, ;;, and Other Hieroglyphics Advanced Macro Topics(PDF) by Chris Yindra, C. YDeveloping, Managing, and Evaluating a Standard Macro System by Albert MoPROC SQL:
An Introduction to Proc SqlTop Ten Reasons to Use PROC SQL
ENTERPRISE GUIDE:
SAS Enterprise Guide for SAS Programmers
Using SAS® Enterprise Guide® to Code When You’re Not aProgrammer
The New World of SAS®: Programming with SAS® EnterpriseGuide®
SAS Enterprise Guide:Data Manipulation, Reports,& Statistical Procedures
Introduction to Using SAS® Enterprise Guide® for Statistical Analysis
SAS Graph:
Improving Your Graphics Using SAS/GRAPH® Annotate Facility
A Powerful Macro to Control Title Appearance in SAS/GRAPH® OutputSAS/GRAPH® 101
Using ODS Styles with SAS/GRAPH®
ODS Statistical Graphics for Clinical Research
Know Your AREA!Creating Professional SAS® Graphics in Clinical Safety Data byUsing the AREAS Option in PROC GPLOT.
Other
Debugging 101(PDF) by Peter Knapp
Those Missing Values in Questionnaires(PDF) by John R. Gerlach & Cindy Garra
Avoiding Mayhem in the New Millennium: Working with Missing Data(PDF) by JoAnn Matthews
Simplifying Complex Character Comparisons by Using the IN Operator and the Colon (:) Operator Modifier(PDF) by Paul Grant
Arrays: In and Out and All About(PDF) by Marge Scerbo
Complex Arrays Made Simple(PDF) by Mary McDonald, PaineWebber Incorporated
You Could Look It Up: An Introduction to SASHELP Dictionary Views(PDF) by Michael Davis, The 'SKIP' Statement(PDF) by Paul Grant
Indexing and Compressing SAS Data Sets: How, Why, and Why Not(PDF) Andrew H. Karp,
Automating the Creation of a Single Bookmarked PDF Documentfrom Multiple SAS® ASCII and PostScript® Output Files Be Careful When You Merge SAS Datasets!
courtesy of NESUG
SAS free study tutorials
Data step:
getting started 1: windows SAS code
getting started 2: data step SAS codeautomatic _N_ variable SAS code
drop & delete SAS codeformating: dates and numbers SAS code date sal.txt
(also see the format procedure below to create your own formats)
functions SAS codeimport: Bringing in data from Excel SAS code
Excel import file Excel export file text fileinput:
length statement SAS code infile options.txtlong SAS code long.txt
missing data SAS code
output option SAS code
pointers SAS code ex7.txt ex8.txt ex9.txtmore about pointers
SAS code pointers.SAS ex10.txt
missover & delimiter SAS code delimiter.txtmore on the delimiter SAS code
retain SAS codeset SAS code
simulations:
random numbers SAS code
sum SAS code
statistical functions SAS code
Logic:
do loops SAS codemore about do loops SAS codenested do loops SAS codeif then statements SAS code score.txt
Combining Data sets:
concatenating and interleaving SAS code
one-to-one merging SAS code
match merging SAS codeupdating SAS code
Character functions:
substring function SAS code
trim and left functions SAS code
compress and index functions SAS code record.txt
indexc and indexw functions SAS code
implicit character-to-numeric conversion SAS code
explicit character-to-numeric conversion SAS code
implicit and explicit numeric-to-character conversion SAS code
Arrays:
introduction to arrays SAS code
using arrays to count SAS code
using arrays to order observations SAS code
using arrays to transpose data SAS code ratsdose.txt
two dimensional arrays SAS code temp.txt fin.txt
Permanent SAS Data sets:
(great for large data sets)introduction: using libname SAS code
put and file statements SAS code survey.dat data1.dat data2.dat data3.txt fruit.dat data4.dat data5.dat income.dat
Procedures:
ANOVA SAS code incommed.datanalysis of equal vars: B-P for anova SAS code
contents: Great for large data sets SAS code
sheep.dat
correlation SAS code
import: Bringing in data from Excel SAS code Excel import file Excel export file text fileformat SAS code incommed.dat (also see formating above for SAS' date and number formats)
frequency tables SAS code incommed.dat freq.xlsmeans SAS code
incommed.dat
more about means SAS code incommed.datgcharts: Bar and Pie charts SAS code incommed.datgplot: a prettier plot SAS code
more about gplot SAS codeplot SAS codeprint SAS code account.txt
sort SAS code account.txt
more about sorting SAS code compt.txt t-test SAS code incommed.dat
transpose SAS code
univariate SAS code test.dat
Programming outside the Data step or Procedures:
Getting started 3: options SAS codemore options SAS code
Macros:
introduction:
macro variables (%let statement)
SAS code number.dat contest.dat%put statement SAS code score.dat
basic macros SAS code
macros with parameters SAS code ranks.dat
macro do loops SAS code
macro if/then/else statements SAS code makeup.dat
nested macros SAS codesimulations example SAS code reg.dat
Index to Statistics Tutorials (source:www.stattutorials.com)
PROC MEANS Tutorial (Descriptive statistics)
PROC UNIVARIATE Tutorial (Distribution analysis)
New: PROC UNIVARIATE - Advanced Tutorial
PROC CORR Tutorial (Correlation)
PROC FREQ Tutorial 1 (Frequency Tables/Goodness of Fit)
PROC FREQ Tutorial 2 (Two-way tables)
PROC TTEST Tutorial (Two sample and paired t-tests)
New: A comparison of Paired & Independent Sample t-tests
PROC ANOVA & GLM Tutorial (One-Way ANOVA)
PROC GLM Tutorial (Repeated measures ANOVA using PROC GLM)
New: Survival Analysis & comparison of groups using PROC LIFEREG
Bland-Altman Analysis (Comparing two measures)
Inter-Rater Reliability, Kappa, Weighted Kappa (PROC FREQ)
New: SAS Functions (2-part tutorial)
Special SAS Topics
New: Setting the SAS Initial Folder (default directory)
Using SAS ODS Output, Styles, Graphics, Data
Data files and SAS code for tutorials
General Statistical Tutorials
Interpreting p-values
Understanding hypothesis testing
Statistical comparison of two groups
getting started 1: windows SAS code
getting started 2: data step SAS codeautomatic _N_ variable SAS code
drop & delete SAS codeformating: dates and numbers SAS code date sal.txt
(also see the format procedure below to create your own formats)
functions SAS codeimport: Bringing in data from Excel SAS code
Excel import file Excel export file text fileinput:
length statement SAS code infile options.txtlong SAS code long.txt
missing data SAS code
output option SAS code
pointers SAS code ex7.txt ex8.txt ex9.txtmore about pointers
SAS code pointers.SAS ex10.txt
missover & delimiter SAS code delimiter.txtmore on the delimiter SAS code
retain SAS codeset SAS code
simulations:
random numbers SAS code
sum SAS code
statistical functions SAS code
Logic:
do loops SAS codemore about do loops SAS codenested do loops SAS codeif then statements SAS code score.txt
Combining Data sets:
concatenating and interleaving SAS code
one-to-one merging SAS code
match merging SAS codeupdating SAS code
Character functions:
substring function SAS code
trim and left functions SAS code
compress and index functions SAS code record.txt
indexc and indexw functions SAS code
implicit character-to-numeric conversion SAS code
explicit character-to-numeric conversion SAS code
implicit and explicit numeric-to-character conversion SAS code
Arrays:
introduction to arrays SAS code
using arrays to count SAS code
using arrays to order observations SAS code
using arrays to transpose data SAS code ratsdose.txt
two dimensional arrays SAS code temp.txt fin.txt
Permanent SAS Data sets:
(great for large data sets)introduction: using libname SAS code
put and file statements SAS code survey.dat data1.dat data2.dat data3.txt fruit.dat data4.dat data5.dat income.dat
Procedures:
ANOVA SAS code incommed.datanalysis of equal vars: B-P for anova SAS code
contents: Great for large data sets SAS code
sheep.dat
correlation SAS code
import: Bringing in data from Excel SAS code Excel import file Excel export file text fileformat SAS code incommed.dat (also see formating above for SAS' date and number formats)
frequency tables SAS code incommed.dat freq.xlsmeans SAS code
incommed.dat
more about means SAS code incommed.datgcharts: Bar and Pie charts SAS code incommed.datgplot: a prettier plot SAS code
more about gplot SAS codeplot SAS codeprint SAS code account.txt
sort SAS code account.txt
more about sorting SAS code compt.txt t-test SAS code incommed.dat
transpose SAS code
univariate SAS code test.dat
Programming outside the Data step or Procedures:
Getting started 3: options SAS codemore options SAS code
Macros:
introduction:
macro variables (%let statement)
SAS code number.dat contest.dat%put statement SAS code score.dat
basic macros SAS code
macros with parameters SAS code ranks.dat
macro do loops SAS code
macro if/then/else statements SAS code makeup.dat
nested macros SAS codesimulations example SAS code reg.dat
Index to Statistics Tutorials (source:www.stattutorials.com)
PROC MEANS Tutorial (Descriptive statistics)
PROC UNIVARIATE Tutorial (Distribution analysis)
New: PROC UNIVARIATE - Advanced Tutorial
PROC CORR Tutorial (Correlation)
PROC FREQ Tutorial 1 (Frequency Tables/Goodness of Fit)
PROC FREQ Tutorial 2 (Two-way tables)
PROC TTEST Tutorial (Two sample and paired t-tests)
New: A comparison of Paired & Independent Sample t-tests
PROC ANOVA & GLM Tutorial (One-Way ANOVA)
PROC GLM Tutorial (Repeated measures ANOVA using PROC GLM)
New: Survival Analysis & comparison of groups using PROC LIFEREG
Bland-Altman Analysis (Comparing two measures)
Inter-Rater Reliability, Kappa, Weighted Kappa (PROC FREQ)
New: SAS Functions (2-part tutorial)
Special SAS Topics
New: Setting the SAS Initial Folder (default directory)
Using SAS ODS Output, Styles, Graphics, Data
Data files and SAS code for tutorials
General Statistical Tutorials
Interpreting p-values
Understanding hypothesis testing
Statistical comparison of two groups
Subscribe to:
Posts (Atom)
Disclosure:
In the spirit of transparency and innovation, I want to share that some of the content on this blog is generated with the assistance of ChatGPT, an AI language model developed by OpenAI. While I use this tool to help brainstorm ideas and draft content, every post is carefully reviewed, edited, and personalized by me to ensure it aligns with my voice, values, and the needs of my readers.
My goal is to provide you with accurate, valuable, and engaging content, and I believe that using AI as a creative aid helps achieve that. If you have any questions or feedback about this approach, feel free to reach out. Your trust and satisfaction are my top priorities.