Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
1K views

Learn SAS Programming

This document summarizes several SAS programming techniques and tips from a blog, including how to determine the executing program name, check if a variable or file exists, customize page numbers in RTF output, calculate time differences between dates, import Excel files, merge datasets, and use different ampersands and dots in macros. The blog provides code examples and explanations for basic and advanced SAS tasks.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views

Learn SAS Programming

This document summarizes several SAS programming techniques and tips from a blog, including how to determine the executing program name, check if a variable or file exists, customize page numbers in RTF output, calculate time differences between dates, import Excel files, merge datasets, and use different ampersands and dots in macros. The blog provides code examples and explanations for basic and advanced SAS tasks.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Learn SAS Programming

How to determine the executing program name and path


programatically:
Oftentimes, I was asked to keep the name and path of the executing program in the FOOTNOTE
of the generated table or listings.I have always created a macro variable using the %let statement
and, then I called the Macro variable in the footnote statement to get the name of the program.
Eventhough it is simple.. it may not be suitable when we write application which need to self
document...

Read more at: http://studysas.blogspot.com/2009/04/how-to-determine-executing-program-


name.html
______________________________________________________________________________
__
How to check if a variable exist or not:
In SAS sometimes, we need to check whether the variable is exist in the dataset or not, we
usually run the proc contents program and physically check if the variable exist in the dataset or
not.If we want to check it programmatically, then use the following code....

Read more at: http://studysas.blogspot.com/2009/04/how-to-check-if-variable-exists-in-


sas.html
______________________________________________________________________________
___
How to check if the File is exist or not in SAS:
Guys… Let me try explaining how to check if the file exist in the library or directory using
SAS.Here I am writing a macro to check if the file exist in the directory or not.Here is the way to

check it… http://studysas.blogspot.com/2009/04/how-to-check-if-file-is-exist-or-not-in.html


______________________________________________________________________________
___
SAS programming errors we make..... can be deadly sometimes
The errors I will list here will be very few in number. They are errors that you will likely make at
some time if you do not remain alert. These errors could have serious consequences so that is
why I have described them as "deadly errors".

Read more at: http://studysas.blogspot.com/2009/03/sas-programming-errors-we-made-


can-be.html
______________________________________________________________________________
___
Proc Sort NODUP vs NODUPKEY
Somany times people from my orkut community asked me what is the real difference between
the Proc sort Dodup and the Proc Sort nodupkey. I always wanted to answer the question in a
better way…. and folkes… here is the answer ..... A common interview question for SAS jobs is
"What is the difference between proc sort nodup and proc sort nodupkey?". The answer the
interviewer is expecting is usually "proc sort nodup gets rid of duplicate records with the same
sort key but proc sort nodupkey gets rid of other records with the same sort key". However, this
is not correct.
Read more at: http://studysas.blogspot.com/2009/03/proc-sort-nodup-vs-nodupkey.html
______________________________________________________________________________
_____

PROC TRANSPOSE: How to Convert Variables(columns) into


Observations(ROWS) and Observations(ROWS) into
Variables(Columns)
During my early days as a SAS programmer, I get confused very easily with PROC
TRANSPOSE. I mean, I get confused with what are the variables that I need to include in BY
statement and ID statement as well as in VAR statement.

Read more at…:http://studysas.blogspot.com/2009/03/proc-transpose-how-to-convert.html

______________________________________________________________________________
____
Displaying the Graphs (Bar charts) using PROC GCHART in SAS
Displaying the Graphs (Bar charts) using PROC GCHART in SAS :Just a day ago, I have
received a question on Graphs in my orkut community, which prompted me to create following
examples.Below are 5 different types of Graphs were produced (including 3d graphs) using Proc
Gchart.

Read more at: http://studysas.blogspot.com/2009/03/displaying-graphs-bar-charts-using-


proc.html
______________________________________________________________________________
____
Change all missing values of all variables into zeros/putting zeros in
place of missing values for variables
I always wondered how do I convert missing values for all the variables into zeros and In this
example the I have used array to do the same. The variable list includes ID and Score1 to
score6.Using simple array method we can change all the missing value for the variables score1 to
score6 to 0.

Read more at:http://studysas.blogspot.com/2009/03/change-all-missing-values-of-all.html


______________________________________________________________________________
____
How to Save LOG file in the required location:
Here is the simple code which allows us to save the log file in the required location. Use Proc
printto procedure to save or print the log file. filename dsn ‘C:\Documents and
Settings\zzzzzzzzzzzz\Desktop\LOGfile.lst'

Read more at:http://studysas.blogspot.com/2009/03/how-to-save-log-file-or-what-is-


proc.html

______________________________________________________________________________
______
Calculating group totals and the counts within each group
Sample 25217: Calculating group totals and the counts within each group This example uses the
SUM() function to sum the AMOUNT column, creating a new column named GRPTOTAL with
a COMMA10. format. The COUNT() function counts the number of occurrences of STATE
within each group. The GROUP BY clause collapses multiple rows for each group into one row
per group, containing STATE, GRPTOTAL and the COUNT.

Read more at: http://studysas.blogspot.com/2009/03/calculating-group-totals-and-


counts.html
______________________________________________________________________________
______
How to customize page numbers in RTF output
In SAS 9.1, are there easier ways to customize page numbers in RTF output?
Yes, beginning with SAS 9.1, page numbers can be customized in the RTF destination by using
an escape character and the {thispage} function, {lastpage} function, {pageof} function, or all
three:

Read more at: http://studysas.blogspot.com/2009/03/how-to-customize-page-numbers-in-


rtf.html
______________________________________________________________________________
______
How to calculate number of years and number of days between 2
dates;
How to calculate number of years and number of days between 2 dates;Exploring the yrdif and
datdif functions in SAS as well as INTCK function:There are several ways to calculate the
number of years between two dates and out of all the methods, YRDIF function results the most
accurate value.

Read more at: http://studysas.blogspot.com/2009/03/how-to-calculate-number-of-years-


and.html
______________________________________________________________________________
______

How to create a comma separated file (.csv) of a SAS dataset?


IN SAS programming, we often require outputting the dataset in different formats like EXCEL
and CSV etc and here are the five different ways to export the SAS dataset into .csv file.

Read more at: http://studysas.blogspot.com/2009/02/how-to-create-comma-separated-file-


csv.html
______________________________________________________________________________
______

How to Import Excel files into SAS


Microsoft Excel spreadsheets can be read from SAS in several ways. Two of these will be
demonstrated here. First, PROC IMPORT allows direct access to Excel files through
SAS/Access to PC File Formats or access to Comma-Separated (CSV) files through Base SAS.
The second method uses the Excel LIBNAME engine.

Read more at: http://studysas.blogspot.com/2009/02/how-to-import-excel-files-into-sas.html


______________________________________________________________________________
____
How to store a number more than 8 digits for a numeric variables
Q&A: numeric variables length more than 8? We all know that the default length of the numeric
variables in SAS is 8 and if suppose I want to store a number lets say (12345678910, which has a
length 11 to numeric variable) to variable total, what should I do?

Read more at: http://studysas.blogspot.com/2009/02/how-to-store-number-more-than-8-


digits.html
______________________________________________________________________________
_____
Options VALIDVARNAME=UPCASE
VALIDVARNAME= V7 UPCASE ANYVALIDVARNAME= option is generally used in SAS
whenever we want to control the SAS variable names in the dataset.

Read more at: http://studysas.blogspot.com/2009/02/options-validvarnameupcase.html


______________________________________________________________________________
_____
How to merge data sets with a common variable?
Here is the simple way of merging the data sets with a common variable if the datasets has the
same prefix name.For example: col1-col10, dsn1-dsn 7 , or data1 to data10 with common
variable of ID.Considering we have 10 datsets and all of them having the same prefix data;

Read more at: http://studysas.blogspot.com/2009/02/merging-data-sets-with-common-


variable.html
______________________________________________________________________________
_______
Merging the data sets with a common variable if the datasets has the same prefix name?
For example: col1-col10 dsn1-dsn 7 data1 to data6 with common variable of Usubjid.here is the
example, I have 7 datasets i need to merge and each of them having the common
variable(usubjid) to merge, and all the datasets having the same prefix dsn(dsn1 to dsn7).

Read more at: http://studysas.blogspot.com/2009/02/merging-data-sets-using-macro-


code.html
______________________________________________________________________________
_______
when to use &,&&,and &&&,how do we distinguish(Multiple
Ampersands) and Diff. Between single dot and double dots in macros
Here are the 2 important questions always comes up in our minds,(& vs && vs &&& and single
dot and double dots) when we are dealing with macros for the first time and here are the answers
for them.I did find a very good regarding the above topics in the one of the SAS forums and IAN
WHITLOCK explained it very clear.

Read more at: http://studysas.blogspot.com/2009/02/3when-to-use-do-we-


distinguishmultiple.html
______________________________________________________________________________
_______
How can I count number of observations per subject in a data set?
We always have this question in mind, while we do the SAS programming and here is the simple
answer for that, we just need to use SUM statement and the FIRST.variable in the SET statement
and then the RETAIN statement to calculate the observations count per subject.

Read more at: http://studysas.blogspot.com/2009/02/how-can-i-count-number-of-


observations.html
______________________________________________________________________________
_______
How to remove the duplicate observations in the dataset using PROC
SQL, DATASTEP/PROC SQL/or PROC SORT etc?
Before using a particular step to remove the duplicate observations, we should understand that
the duplicate observations are pertaining to the key variables like usubjid, treatment, patientno.
etc, which are unique or exact duplicates( 2 or more observations has the duplicates with respect
to all the variables in the dataset).If the observations are exact duplicates with respect to all the
variables in the dataset, we can remove the exact duplicates by:

Read more at: http://studysas.blogspot.com/2009/02/how-to-remove-duplicate-


observations.html
______________________________________________________________________________
_______
How to scan more than 20 records to determine variable attributes in
EFI:
In Versions 7 and 8 of the SAS System, by default the Import Wizard, PROC IMPORT and the
External File Interface (EFI) scan 20 records to determine variable attributes when reading
delimited text files.Changing the default setting can only be done for EFI in Version 7, Release 8
and Release 8.1. Beginning in Release 8.2 changing the default setting is applicable to the Import
Wizard, PROC IMPORT and EFI.

Read more at: http://studysas.blogspot.com/2009/02/how-to-scan-more-than-20-records-


to.html
______________________________________________________________________________
_______
SAS Sample Programs:
SAS sample code programs:
Macro for sorting the variables:
How to convert character date values into numeric date values using DATASTEP/PROC SQL
and ARRAYS:
How to detect missing values using Arrays: First. & Last. Variables:
How to determine the last observation in the dataset:
How to determine whether a numeric or character value exists within a group of variables:
Lag Function: How to obtain information from the previous observation:
How to create a new dataset from multiple datasets based on the sorted order:
Dynamically generate SET statement to combine multiple datasets:
How to determine which dataset contributed an observation:
How to determine if a variable exists in a dataset or not:
How to Read Delimited Text Files into SAS:
How to keep only even number observations in the dataset:
How to verify the existence of an external file:
Accurately calculating age in one line code:
How to use INDEX/INDEXC functions:
Finding the number of observations in the dataset:
How to capitalize first letter of the every word:/ PROPCASE FUNCTION:
How to use the SCAN function:
Concatenation functions in SAS 9.0:
SOUNDEX Function:
IFC and IFN functions:new IF functions & IF-THEN-ELSE vs SELECT:
How to remove the duplicate observations from the dataset using PROC SQL,
DATASTEP/PROC SQL/or PROC SORT approaches ?
How can I count number of observations per subject in a data set?
How to save the log file or what is PROC PRINTTO procedure
How to calculate number of years and number of days between 2 dates;
How to customize page numbers in RTF output How to create a comma separated file (.csv) of a
SAS dataset?
Change all missing values of all variables into zeros/putting zeros in place of missing values for
variables
____________________________________________________________________
Base SAS Certification Summary---Functions:
SAS Functions can be used to convert data and to manipulate the values of character variables.
Functions are written by specifying the function name, then it's arguments in parentheses.
Arguments can include variables, constants, or expressions. Although arguments are typically
separated by commas, they can also be specified as variable lists or arrays.
Read more at: http://studysas.blogspot.com/2009/01/base-sas-certification-summary.html
______________________________________________________________________________
______
SAS Certification Assignments
[hide]1 Session 1
1.1 exercise 1
1.2 exercise 2
1.3 exercise 3
1.4 exercise 4
1.5 exercise 5
1.6 exercise 6
2 Session 22.1 exercise 1
Read more at: http://studysas.blogspot.com/2008/11/sas-certification-assignments.html
_____________________________________________________________________________
HOW TO CREATE A SAS TRANSPORT(XPT) FILE
Read more at: http://studysas.blogspot.com/2008/12/how-to-create-transport-file.html
______________________________________________________________________
How to Debug the SAS code:

Question:I have a huge SAS program that isn't working. The results I get are not right but there
are no errors or warnings in the SAS log. How can I figure out where I went wrong?
Read more at: http://studysas.blogspot.com/2008/11/how-to-debug-sas-code.html

You might also like