MACROS TO REPORT MISSING DATA: AN HTML DATA COLLECTION GUIDE Patrick Thornton, University of California San Francisco

Size: px
Start display at page:

Download "MACROS TO REPORT MISSING DATA: AN HTML DATA COLLECTION GUIDE Patrick Thornton, University of California San Francisco"

Transcription

1 MACROS TO REPORT MISSING DATA: AN HTML DATA COLLECTION GUIDE Patrick Thornton, University of California San Francisco ABSTRACT This paper presents SAS macros to produce missing data reports in HTML. The reports are useful for informing manages and guiding the activities of data collection staff. The macros feature the CONTENTS and TRANSPOSE procedures, DATA step, and user information to profile missing data points overall, by variable, and by observation. The reports also incorporate summaries by groups of variables, and a customized menu is integrated with the menu created by the SAS Output Delivery System. INTRODUCTION The SAS macros in this paper produce missing data statistics and HTML reports to assist research staff in tracking survey data collection. The reports present various views of missing data in order to: (a) inform managers of the need to focus data collection resources on specific variables or groups of variables, and (b) create an organized and detailed guide for data collection staff. The macros allow the variables in a SAS data set to be grouped into two dimensions on which to summarize missing data rates. In this example, the dimensions are survey type (e.g. Juvenile Justice items) and time (e.g. survey items collected at 3-months): The first report was just summarized. The second report lists the number and percent of respondents missing for each variable in the data set. The third report shows the number and percent of missing variables for each observation/respondent in the data set. As an example, the above table counts the variables and expected responses overall (e.g. All) and within the values of two dimensions (e.g. Juvenile Justice, Intake). Expected responses are calculated by multiplying the number of variables by the number of observations. The percent of missing responses is the missing responses divided by the expected responses multiplied by 100. The percent-missing statistic informs managers on the missing rates for each group of variables/items. The macros were originally conceived to report missing data for a multi-site study of social services given to high-risk youth. Surveys were collected at different time points relative to a social service program: intake, 3-months, 6-months, 9-months, and 12-months. Each survey reported items from one of the following types: (a) alcohol and drug use, (b) education, (c) juvenile justice, and (d) mental health. All the data were stored in a large data set with some 510 variables and 120 observations, where each observation contained all survey responses for a participant. Missing Data Reports The macros for this paper generate five reports using two dimensions to summarize or list missing variables and/or observations. Reports 1, 2 and 3 were designed to allow project managers to review data collection progress by meaningful variable groups. Reports 4 and 5 were specifically designed to allow data collection staff to received feedback regarding which items need to be collected for each participant. These reports may be very long. The fourth report lists the observations/respondents according to percent items missing (e.g % Items Missing), and the fifth report lists all variables in need of data collection for each participant missing data. OVERVIEW OF THE MISSING DATA MACROS This section will present a logical discussion of the macros with simplified syntax that are used to generate missing data statistics. The next section will cover HTML production. For additional detail please refer to the actual macros toward the back of the paper. Grouping Variables on a Variable List The primary function of macro %GVARCAT was to produce a data set of variable names that could be grouped by two dimensions. The first step simplified from the code is as follows: Proc contents data=original out=cats (keep=name); Run; The cats data set contains the variable name that stores the name of the variables in the original data set. The first DATA step in %GVARCAT uses the values of the variable

2 name to assign each observation in cats to a group on the new variables itemd and itemd2. The simplified code showing the creation of itemd is as follows: Data cats; Set cats; Itemd =.; _name_ = put(name,$8.); type = substr(name,1,2); if type = "jj" then itemd = 1; else if type = "ed" then itemd = 2; else if type = "ad" then itemd = 3; else if type = "mh" then itemd = 4; Format itemd dim1.; Run; The syntax for assigning variables to groups may be altered to produce useful variable groupings for other data sets, and the formats altered accordingly. Creating meaningful categories for variables is much easier if a planned variable naming convention was used. If it is too late to create a naming convention, the categories may be assigned by hand. For example, cats could be saved to an Excel spreadsheet where columns are created for itemd and itemd2. Each cell of the columns could be assigned a number indicating the group the variable belongs to on the two dimensions. The spreadsheet could then be imported to SAS and used as cats in the example above. Combining Grouped Variables with the Original Data Now that the data set cats contains the variables in the original data set grouped into two meaningful dimensions, cats is merged with the original data set so that missing data information may be generated by dimension. The TRANSPOSE procedure was used to produce a data set where an observation exists for every variable and observation combination in the original data set. The extracted code is as follows: Proc transpose data=original data=odbyvar; By part; Run; The new data set odbyvar contains the new variables _name_ and col1. These variables store the variable names and the value of each variable from original, respectively. The data set odbyvar was used to create a count of the number of observations having and not having missing variable values. For example: proc freq data=odbyvar noprint; tables _name_/out=tnmis; where col1 ne.; proc freq data= ODBYVAR noprint; tables _name_/out=tmis; where col1 =.; The FREQ procedures create the count of observations from the original data set with missing and non-missing values on each variable. Since the data sets tnmis and tmis both have the variable _name_ they can be merged with cats1. 1 For example, the following simplified syntax demonstrates the merge: data MIS; merge CATS1(in=c) TMIS(in=ta rename=(count=nobmis)) TNMIS(rename=(count=nobnmis)); 1 The variable name in cats1 must be renamed to _name_ 2 if c and ta=c; drop percent; The new data set MIS contains: ITEMD Dimension 1 ITEMD2 - Dimension 2 _NAME name of original variables NOBMIS count of missing observations from original NOBNMIS count of non-missing observations from original Additional calculations were made from both the data sets cats and mis using the SUMMARY procedure: proc summary data=cats; output out=tv; proc summary data=mis; var nobmis; output out=tv2 sum=msrs mean=mnobmis; The first procedure creates the data set tv that contains a count of all variables, count of variables by each dimension, and count of variables by both dimensions (see Table 1). The second procedure produces the data set tv2 that contains the total and average observations missing within all combinations of the dimension variables. OVERVIEW OF MISSING DATA REPORTS This section discusses the production of HTML reports to view the various missing data information discussed above and generated by the %GVARCAT macro. Some independence between generating the missing data information and the HTML report production was desirable. This section will again present an overview with simplified syntax from the macros. Working with the Output Delivery System SAS ODS was used to output most of the HTML reports, however PUT in a DATA step were used to generate a couple of reports and a custom menu. The custom HTML and style statements were designed to take advantage of existing capabilities created by ODS. The following demonstrates syntax used for the generation of HTML using ODS. The macro variable dfp was used to define the root directory for the output. Note that the ODS statements were specifically designed to allow later addition of information to both the body and menu files: %let title = Example Items; %let dfp =c:\example\; filename new "&dfp.origmiss.html"; filename menu "&dfp.menu.html"; filename fram "&dfp.frame.html"; ods html body=new (no_bottom_matter) contents=menu (no_bottom_matter) frame=fram style=fancyprinter; %rep1;

3 The no_bottom_matter phrase following the declarations of the files was critical to allow later appending of custom information to the HTML. The phrase follows the declaration of both the body and menu files. As a result the body and menu files were created as normal, but the files did not contain concluding HTML when the files are closed. The lack of closing bottom_matter allowed additional HTML or other script to be appended to the files. For example, the following syntax allowed data step PUT statements produced by the macros %REP4 and %REP5 to append information to the body file: filename new "&dfp.root\origmiss.html" mod; %rep4; %rep5; The most crucial option in this statement was the use of mod which opens the file for editing rather than creating a new file. The follow ODS statement was then used to close the file, excluding top_matte : ods html file=new(no_top_matter)anchor='end'; Adding a Custom Menu to the ODS Menu File Missing data report number 5 lists all missing variables for each participant (observation) in the data set. Since the list may be quite long, it was useful to have a menu that allowed users to jump to the listings for specific groups of participants (e.g. 1-12, 13-24, 25-36). For example, clicking on the link for participants jumps to participant 13 in report 5 in the body file. The complete macros, %menu, %menustyl, %spanhead, %spanclos, are listed later in this paper, but as an overview, creation of the custom menu has two steps: Adding a new menu heading to the ODS menu Inserting links for each group of participants The original ODS statement specified a menu file, so menu items were constructed automatically by ODS for missing data reports 1-3. All three reports were generated from PRINT procedures that were executed within the ODS. In contrast, reports 4 and 5 were written directly into the body file through PUT statements outside ODS. No menu items were created for reports 4 & 5, however, similar to the body file, the menu file was created without adding closing HTML. ODS uses the <SPAN>, <DT>, and <DL> tags to help define each menu item, to enclose the links under the item, and to enable the click of the menu heading to toggle the visibility of the enclosed link. A new menu heading following the ODS convention was added by the macros %menustyl, %spanhead and %spanclose : <script language=javascript1.2> function lodit(v){ parent.body.location.href='origmiss.html#' + v } </script> <style type='text/css'> #menu1 { display : block; TEXT-ALIGN: center; BACKGROUND-COLOR: thistle} </style> <li><span>participants Missing Data</SPAN><br><dl><dt> <SPAN id='menu1'><b> </b> <a href=javascript:lodit('1') >1-5 </a><br> <a href=javascript:lodit('7') >7-13 </a><br> <a href=javascript:lodit('15') >15-20 </a><br> <a href=javascript:lodit('21') >21-25 </a><br> </SPAN><br></dl> The macro %menu was used to generate the participant groups that are linked to positions in the body file. The position of each participant listed for report 5 was denoted through the use of <A name=anchor> tag in the body file where ANCHOR was participant number. %menu(odbyvar2,part,mi=20,t=participa nts); The argument MI to the %menu macro dictates the number of participant groups to add to the menu. For example, with an MI=20, the macro will try to produce 20 groups of equal size from the observations. If there were 130 observations then 20 groups of 6 participant (1-5,7-13 etc.) would be created, the remaining participants listed in the last group. Note also that the numbers may not be continuous because some participants may not have missing data. MACRO EXECUTION The syntax in this section assumes all the macros in the sections to follow have been defined. In this example, the macro %GVARCAT is passed the name of a data set allc, and part, the variable uniquely identifying each observation. Creating Missing Data Information %gvarcat(allc,part,scat=); Creating HTML Reports %let title = Example Items; %let dfp =c:\example\; filename new "&dfp.root\origmiss.html"; filename menu "&dfp.root\menu.html"; filename fram "&dfp.root\frame.html"; ods html body=new (no_bottom_matter) contents=menu (no_bottom_matter) frame=fram style=fancyprinter; %rep1; %rep2; %rep3; filename new "&dfp.root\origmiss.html" mod; %rep4; %rep5; ods html file=new(no_top_matter)anchor='end'; filename menu "&dfp.root\menu.html" mod; file menu; put "<script language=javascript1.2>"; put "function lodit(v){"; put "parent.body.location.href='origmiss. html#' + v"; put "}"; put "</script>"; %menustyl; %spanhead; 3

4 %menu(odbyvar2,part,mi=20,t=participants); file menu; %spanclos; ods html file=menu(no_top_matter) anchor='end'; Missing Data Macros %macro gvarcat(od,oid,scat=,scat1=); proc contents data=&od noprint out=cats(keep=varnum name label nobs); data cats1 (keep=_name_ label itemd2 varnum itemd); set cats end=last; if name ne "&oid" then do; length _name_ $8; _name_ = put(name,$8.); type = substr(name,1,2); *first domain of variables; if type = "jj" then itemd = 1; else if type = "ed" then itemd = 2; else if type = "ad" then itemd = 3; else if type = "mh" then itemd = 4; * second domain of variables; per = substr(name,3,1); i = index(name,"_"); if i > 0 then do; t = substr(name,1,i-1); l = length(t)-3; tp = substr(name,4,l); if per = "b" then tp = 0; if tp = 0 then itemd2 = 1; else if tp = 3 then itemd2 = 2; else if tp = 6 then itemd2 = 3; else if tp = 9 then itemd2 = 4; else if tp = 12then itemd2 = 5; *formats domain indicators; format itemd2 dims.; format itemd dimf.; if itemd2 ne. and itemd ne. then output cats1; data cats; set cats1; %if &scat ne %then %do; if itemd =&scat then output; % %odbyvar(&od,&oid); %nobsmis(&od,odbyvar,&oid); %pmiscat(&od,odbyvar2,&oid); %m %macro odbyvar(od,oid); proc summary data=cats; output out=tv; proc sort data=cats; proc sort data=&od; by &oid; proc transpose data=&od out=odbyvar; by &oid; proc sort data=odbyvar out=l nodupkey; %m %macro nobsmis(od,d,oid); proc freq data=&d noprint; tables _name_/out=tnmis; where col1 ne.; proc freq data=&d noprint; tables _name_/out=tmis; where col1 =.; proc sql noprint; select count(&oid) into: numobs from &od; quit; data mis; merge cats(in=c) tmis(in=ta rename=(count=nobmis)) tnmis(in=t rename=(count=nobnmis)) l; if c and ta=c; label pnobmis = "% Obs Missing"; label itemd = "Dimension 1"; label itemd2 = "Dimension 2"; label nobnmis = "Obs Complete"; label allobs= "All Obs"; label nobmis = "Obs Missing"; label label = "Description"; label exrdents = "Expected Respondents"; label _name_ = "Variable"; allobs = sum(nobnmis,nobmis); pnobmis = 0; exrdents = &numobs; pnobmis = (nobmis/exrdents)*100; drop part varnum percent; *get total and average missing responses; proc summary data=mis; var nobmis; output out=tv2 sum=msrs mean=mnobmis; *total variables in each dimension; proc sort data=tv; by itemd itemd2; *total and average responses missing; proc sort data=tv2; by itemd itemd2; *tv3 is data set for report 1; data tv3; merge tv (rename=(_freq_=items)) tv2(drop=_freq_); by itemd itemd2; label itemd = "Dimension 1"; label itemd2 = "Dimension 2"; label exrs = "Expected Responses"; 4

5 label prsm = "% Responses Missing"; label msrs = "Missing Responses"; label mnobmis = "Average Responses Missing"; label items = "Variables"; label exrdents = "Expected Respondents"; exrdents = &numobs; exrs = items*exrdents; prsm = msrs/exrs*100; drop _type_; *each participant has observations 1 to number of variables; proc sort data=&d; proc sort data=mis; *merge variable categories with obs/variable dataset; * mis has "Obs Complete", "All Obs","Obs Missing", "Expected Respondents"; data odbyvar2; merge &d(in=d) mis(in=m); if m=d; if col1=.; %m Macros to Create a Missing Data Reports %macro rep1; proc print data=tv3 label noobs; var itemd itemd2 items exrdents exrs msrs prsm mnobmis; * var itemd itemd2 items exrdents exrs msrs prsm; title "&title"; format prsm pctfmt.; title2 "Report #1: Summary of Missing Data"; %m %macro rep2; proc print data=mis label noobs; var itemd itemd2 label _name_ nobmis pnobmis; title "&title"; title2 "Report #2: Respondents (Observations) Missing by Item"; %m %macro rep3; proc sort data=tipp2; by descending tmisp; proc print data=tipp2 label noobs; var part itemd itemd2 vmis tipp tmisp; title "&title"; title2 "Report3:Missing Items by Observation"; %m %macro rep4; proc sort data=tipp2; by itemd itemd2 descending misp part; file new; t = put(date(),mmddyy8.); put "<center>"; put "<h1>&title</h1>"; put "<h2>data Collection Guide</h2>"; put "<h3>" t "</h3></center>"; set tipp2 nobs=tot; file new; by itemd itemd2 descending misp part; if _n_ = 1 then do; put "<h2>report 4: Data Collection Needed for the Following Participants</h2>"; if first.itemd then do; put "<h3>" itemd "</h2>"; if first.itemd2 then do; put "<table border=1 width=700> <tr><td colspan=2><b>" itemd2 "</b></td></tr>"; put "<tr><td>% Items Missing<td>Participants</tr>"; if first.misp then do; put "<tr><td>" tmisp "<td>"; put "<a href=#" part ">" part "</a>"; if last.itemd2 then put "</tr></table><br>"; %m %macro rep5; *filename new "&dfp.root\origmiss.html" mod; *items needed within participant; %let block = "block"; proc sort data=odbyvar2; by part itemd2 itemd _name_; set odbyvar2 nobs=tot; by part itemd2 itemd _name_; retain col 0; file new; if first.part then do; put "<h1>participant # <a name=" part ">" part "</a> is Missing the Following Items: </h1>"; if first.itemd2 then do; put "<table border=1 width=700>"; if first.itemd then do; put "<tr><td 5

6 colspan=4><h3>" itemd2 itemd "</h3><br></tr><tr>"; col = 0; col = col + 1; put "<td> " _label_ "<br>"; if mod(col,4) = 0 then put "<tr>"; if last.itemd2 then do; put "</table>"; %m Macros to Add a Custom Menu to the ODS Menu %macro menustyl; put "<style type='text/css'>"; put " #menu1 { display : block; TEXT- ALIGN: center; BACKGROUND-COLOR: thistle}"; put "</style>"; %m %macro spanhead; put "<li><span>participants Missing Data</SPAN><br><dl><dt>"; put "<SPAN id='menu1'><b> </b>"; %m %macro spanclos; put "</SPAN><br></dl>"; %m %macro menu(d,uid,mi=10,t=); proc sort data=&d nodupkey out=parts; by part; file menu; set parts nobs=t; retain p w r s sc lr ur 0; if _n_ = 1 then do; p = &mi; *number of equal segments; w = floor(t/p); *width of each segment; r = t - p*w; *remaining obs past last equal segment; lr = &uid; * begin with first obs; s =1; *segment 1; if sc = 0 then lr = part; if s <= p then do; *doing one of the equal segments; sc = sc + 1; *within segment count; if sc = w then do; *at the upper value of the segment; ur = &uid; pt = "'" trim(left(lr)) "')"; put "<a href=javascript:lodit(" pt ">" lr "-" ur "</a><br>"; s = s + 1; sc = 0; else do; *do remaining obs after last segment; sc= sc + 1; if r > 0 and _n_ = t then do; ur = &uid; pt = "'" trim(left(lr)) "')"; put "<a href=javascript:lodit(" pt ">" lr "-" ur "</a>"; %m CONCLUSION The missing data reports presented here have been useful in providing swift feedback on the progress of data collection activities. The reports and the organization of the reports in HTML are in a continuous process of refinement based on the needs of staff. But, producing the reports as a scheduled output has reduced ad hoc requests for specific reports on missing data. REFERENCES SAS Institute, Inc. The Complete Guide to the ODS Output Delivery System, Version 8, Cary, NC: SAS Institute Inc., CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the author at: Patrick Thornton, Ph.D. Child Services Research Group UCSF 1388 Sutter Street Suite 503 San Francisco, CA Work Phone: Fax: Address: pthornt@itsa.ucsf.edu 6

Macros to Report Missing Data: An HTML Data Collection Guide Patrick Thornton, University of California San Francisco, SF, California

Macros to Report Missing Data: An HTML Data Collection Guide Patrick Thornton, University of California San Francisco, SF, California Macros to Report Missing Data: An HTML Data Collection Guide Patrick Thornton, University of California San Francisco, SF, California ABSTRACT This paper presents SAS macro programs that calculate missing

More information

Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA

Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA Using PROC REPORT to Cross-Tabulate Multiple Response Items Patrick Thornton, SRI International, Menlo Park, CA ABSTRACT This paper describes for an intermediate SAS user the use of PROC REPORT to create

More information

Abstract. Background. Summary of method. Using SAS to determine file and space usage in UNIX. Title: Mike Montgomery [MIS Manager, MTN (South Africa)]

Abstract. Background. Summary of method. Using SAS to determine file and space usage in UNIX. Title: Mike Montgomery [MIS Manager, MTN (South Africa)] Title: Author: Using SAS to determine file and space usage in UNIX Mike Montgomery [MIS Manager, MTN (South Africa)] Abstract The paper will show tools developed to manage a proliferation of SAS files

More information

Essential ODS Techniques for Creating Reports in PDF Patrick Thornton, SRI International, Menlo Park, CA

Essential ODS Techniques for Creating Reports in PDF Patrick Thornton, SRI International, Menlo Park, CA Thornton, S. P. (2006). Essential ODS techniques for creating reports in PDF. Paper presented at the Fourteenth Annual Western Users of the SAS Software Conference, Irvine, CA. Essential ODS Techniques

More information

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS TO SAS NEED FOR SAS WHO USES SAS WHAT IS SAS? OVERVIEW OF BASE SAS SOFTWARE DATA MANAGEMENT FACILITY STRUCTURE OF SAS DATASET SAS PROGRAM PROGRAMMING LANGUAGE ELEMENTS OF THE SAS LANGUAGE RULES FOR SAS

More information

Using Templates Created by the SAS/STAT Procedures

Using Templates Created by the SAS/STAT Procedures Paper 081-29 Using Templates Created by the SAS/STAT Procedures Yanhong Huang, Ph.D. UMDNJ, Newark, NJ Jianming He, Solucient, LLC., Berkeley Heights, NJ ABSTRACT SAS procedures provide a large quantity

More information

ET01. LIBNAME libref <engine-name> <physical-file-name> <libname-options>; <SAS Code> LIBNAME libref CLEAR;

ET01. LIBNAME libref <engine-name> <physical-file-name> <libname-options>; <SAS Code> LIBNAME libref CLEAR; ET01 Demystifying the SAS Excel LIBNAME Engine - A Practical Guide Paul A. Choate, California State Developmental Services Carol A. Martell, UNC Highway Safety Research Center ABSTRACT This paper is a

More information

A Generalized Macro-Based Data Reporting System to Produce Both HTML and Text Files

A Generalized Macro-Based Data Reporting System to Produce Both HTML and Text Files A Generalized Macro-Based Data Reporting System to Produce Both HTML and Text Files Jeff F. Sun, Blue Cross Blue Shield of North Carolina, Durham, North Carolina Abstract This paper will address the inter-connection

More information

Better Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables

Better Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables Paper 3458-2015 Better Metadata Through SAS II: %SYSFUNC, PROC DATASETS, and Dictionary Tables ABSTRACT Louise Hadden, Abt Associates Inc., Cambridge, MA SAS provides a wealth of resources for users to

More information

A Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment

A Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment A Practical and Efficient Approach in Generating AE (Adverse Events) Tables within a Clinical Study Environment Abstract Jiannan Hu Vertex Pharmaceuticals, Inc. When a clinical trial is at the stage of

More information

The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data

The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data Paper PO31 The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data MaryAnne DePesquo Hope, Health Services Advisory Group, Phoenix, Arizona Fen Fen Li, Health Services Advisory Group,

More information

Using PROC SQL to Generate Shift Tables More Efficiently

Using PROC SQL to Generate Shift Tables More Efficiently ABSTRACT SESUG Paper 218-2018 Using PROC SQL to Generate Shift Tables More Efficiently Jenna Cody, IQVIA Shift tables display the change in the frequency of subjects across specified categories from baseline

More information

ABSTRACT INTRODUCTION TRICK 1: CHOOSE THE BEST METHOD TO CREATE MACRO VARIABLES

ABSTRACT INTRODUCTION TRICK 1: CHOOSE THE BEST METHOD TO CREATE MACRO VARIABLES An Efficient Method to Create a Large and Comprehensive Codebook Wen Song, ICF International, Calverton, MD Kamya Khanna, ICF International, Calverton, MD Baibai Chen, ICF International, Calverton, MD

More information

Chapter 6: Modifying and Combining Data Sets

Chapter 6: Modifying and Combining Data Sets Chapter 6: Modifying and Combining Data Sets The SET statement is a powerful statement in the DATA step. Its main use is to read in a previously created SAS data set which can be modified and saved as

More information

Posters. Paper

Posters. Paper Paper 212-26 Using SAS/AF to Create a SAS Program File Explorer Rob Nelson, Centers for Disease Control and Prevention, Atlanta, GA Janet Royalty, Centers for Disease Control and Prevention, Atlanta, GA

More information

Syntax Conventions for SAS Programming Languages

Syntax Conventions for SAS Programming Languages Syntax Conventions for SAS Programming Languages SAS Syntax Components Keywords A keyword is one or more literal name components of a language element. Keywords are uppercase, and in reference documentation,

More information

Cleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA

Cleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA Cleaning Duplicate Observations on a Chessboard of Missing Values Mayrita Vitvitska, ClinOps, LLC, San Francisco, CA ABSTRACT Removing duplicate observations from a data set is not as easy as it might

More information

Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table

Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table Amy C. Young, Ischemia Research and Education Foundation, San Francisco, CA Sharon X. Zhou, Ischemia Research and Education

More information

HTML Summary. All of the following are containers. Structure. Italics Bold. Line Break. Horizontal Rule. Non-break (hard) space.

HTML Summary. All of the following are containers. Structure. Italics Bold. Line Break. Horizontal Rule. Non-break (hard) space. HTML Summary Structure All of the following are containers. Structure Contains the entire web page. Contains information

More information

My Reporting Requires a Full Staff Help!

My Reporting Requires a Full Staff Help! ABSTRACT Paper GH-03 My Reporting Requires a Full Staff Help! Erin Lynch, Daniel O Connor, Himesh Patel, SAS Institute Inc., Cary, NC With cost cutting and reduced staff, everyone is feeling the pressure

More information

SAS Online Training: Course contents: Agenda:

SAS Online Training: Course contents: Agenda: SAS Online Training: Course contents: Agenda: (1) Base SAS (6) Clinical SAS Online Training with Real time Projects (2) Advance SAS (7) Financial SAS Training Real time Projects (3) SQL (8) CV preparation

More information

Macros for Two-Sample Hypothesis Tests Jinson J. Erinjeri, D.K. Shifflet and Associates Ltd., McLean, VA

Macros for Two-Sample Hypothesis Tests Jinson J. Erinjeri, D.K. Shifflet and Associates Ltd., McLean, VA Paper CC-20 Macros for Two-Sample Hypothesis Tests Jinson J. Erinjeri, D.K. Shifflet and Associates Ltd., McLean, VA ABSTRACT Statistical Hypothesis Testing is performed to determine whether enough statistical

More information

Base and Advance SAS

Base and Advance SAS Base and Advance SAS BASE SAS INTRODUCTION An Overview of the SAS System SAS Tasks Output produced by the SAS System SAS Tools (SAS Program - Data step and Proc step) A sample SAS program Exploring SAS

More information

A Side of Hash for You To Dig Into

A Side of Hash for You To Dig Into A Side of Hash for You To Dig Into Shan Ali Rasul, Indigo Books & Music Inc, Toronto, Ontario, Canada. ABSTRACT Within the realm of Customer Relationship Management (CRM) there is always a need for segmenting

More information

PharmaSUG Paper PO12

PharmaSUG Paper PO12 PharmaSUG 2015 - Paper PO12 ABSTRACT Utilizing SAS for Cross-Report Verification in a Clinical Trials Setting Daniel Szydlo, Fred Hutchinson Cancer Research Center, Seattle, WA Iraj Mohebalian, Fred Hutchinson

More information

Creating Macro Calls using Proc Freq

Creating Macro Calls using Proc Freq Creating Macro Calls using Proc Freq, Educational Testing Service, Princeton, NJ ABSTRACT Imagine you were asked to get a series of statistics/tables for each country in the world. You have the data, but

More information

How to Keep Multiple Formats in One Variable after Transpose Mindy Wang

How to Keep Multiple Formats in One Variable after Transpose Mindy Wang How to Keep Multiple Formats in One Variable after Transpose Mindy Wang Abstract In clinical trials and many other research fields, proc transpose are used very often. When many variables with their individual

More information

Chapter 4 Creating Tables in a Web Site Using an External Style Sheet

Chapter 4 Creating Tables in a Web Site Using an External Style Sheet Chapter 4 Creating Tables in a Web Site Using an External Style Sheet MULTIPLE RESPONSE Modified Multiple Choice 1. Attributes are set relative to the elements in a table. a. line c. row b. column d. cell

More information

Don t Forget About SMALL Data

Don t Forget About SMALL Data Don t Forget About SMALL Data Lisa Eckler Lisa Eckler Consulting Inc. September 25, 2015 Outline Why does Small Data matter? Defining Small Data Where to look for it How to use it examples What else might

More information

SAS (Statistical Analysis Software/System)

SAS (Statistical Analysis Software/System) SAS (Statistical Analysis Software/System) SAS Analytics:- Class Room: Training Fee & Duration : 23K & 3 Months Online: Training Fee & Duration : 25K & 3 Months Learning SAS: Getting Started with SAS Basic

More information

DESCRIPTION OF THE PROJECT

DESCRIPTION OF THE PROJECT Skinning the Cat This Way and That: Using ODS to Create Word Documents That Work for You Elizabeth Axelrod, Abt Associates Inc., Cambridge, MA David Shamlin, SAS Institute Inc., Cary, NC ABSTRACT By supporting

More information

SAS (Statistical Analysis Software/System)

SAS (Statistical Analysis Software/System) SAS (Statistical Analysis Software/System) Clinical SAS:- Class Room: Training Fee & Duration : 23K & 3 Months Online: Training Fee & Duration : 25K & 3 Months Learning SAS: Getting Started with SAS Basic

More information

KEPT IN TRANSLATION: AVOIDING DATA LOSS AND OTHER PROBLEMS WHEN CONVERTING JAPANESE DATA

KEPT IN TRANSLATION: AVOIDING DATA LOSS AND OTHER PROBLEMS WHEN CONVERTING JAPANESE DATA PAPER TS05 KEPT IN TRANSLATION: AVOIDING DATA LOSS AND OTHER PROBLEMS WHEN CONVERTING JAPANESE DATA Steve Prust, Covance, Leeds, UK ABSTRACT This paper details a method of translating and converting data

More information

Paper DB2 table. For a simple read of a table, SQL and DATA step operate with similar efficiency.

Paper DB2 table. For a simple read of a table, SQL and DATA step operate with similar efficiency. Paper 76-28 Comparative Efficiency of SQL and Base Code When Reading from Database Tables and Existing Data Sets Steven Feder, Federal Reserve Board, Washington, D.C. ABSTRACT In this paper we compare

More information

As we design and build out our HTML pages, there are some basics that we may follow for each page, site, and application.

As we design and build out our HTML pages, there are some basics that we may follow for each page, site, and application. Extra notes - Client-side Design and Development Dr Nick Hayward HTML - Basics A brief introduction to some of the basics of HTML. Contents Intro element add some metadata define a base address

More information

Keeping Track of Database Changes During Database Lock

Keeping Track of Database Changes During Database Lock Paper CC10 Keeping Track of Database Changes During Database Lock Sanjiv Ramalingam, Biogen Inc., Cambridge, USA ABSTRACT Higher frequency of data transfers combined with greater likelihood of changes

More information

An Easy Route to a Missing Data Report with ODS+PROC FREQ+A Data Step Mike Zdeb, FSL, University at Albany School of Public Health, Rensselaer, NY

An Easy Route to a Missing Data Report with ODS+PROC FREQ+A Data Step Mike Zdeb, FSL, University at Albany School of Public Health, Rensselaer, NY SESUG 2016 Paper BB-170 An Easy Route to a Missing Data Report with ODS+PROC FREQ+A Data Step Mike Zdeb, FSL, University at Albany School of Public Health, Rensselaer, NY ABSTRACT A first step in analyzing

More information

Getting it Done with PROC TABULATE

Getting it Done with PROC TABULATE ABSTRACT Getting it Done with PROC TABULATE Michael J. Williams, ICON Clinical Research, San Francisco, CA The task of displaying statistical summaries of different types of variables in a single table

More information

CHAPTER 2 MARKUP LANGUAGES: XHTML 1.0

CHAPTER 2 MARKUP LANGUAGES: XHTML 1.0 WEB TECHNOLOGIES A COMPUTER SCIENCE PERSPECTIVE CHAPTER 2 MARKUP LANGUAGES: XHTML 1.0 Modified by Ahmed Sallam Based on original slides by Jeffrey C. Jackson reserved. 0-13-185603-0 HTML HELLO WORLD! Document

More information

SD10 A SAS MACRO FOR PERFORMING BACKWARD SELECTION IN PROC SURVEYREG

SD10 A SAS MACRO FOR PERFORMING BACKWARD SELECTION IN PROC SURVEYREG Paper SD10 A SAS MACRO FOR PERFORMING BACKWARD SELECTION IN PROC SURVEYREG Qixuan Chen, University of Michigan, Ann Arbor, MI Brenda Gillespie, University of Michigan, Ann Arbor, MI ABSTRACT This paper

More information

In this paper, we will build the macro step-by-step, highlighting each function. A basic familiarity with SAS Macro language is assumed.

In this paper, we will build the macro step-by-step, highlighting each function. A basic familiarity with SAS Macro language is assumed. No More Split Ends: Outputting Multiple CSV Files and Keeping Related Records Together Gayle Springer, JHU Bloomberg School of Public Health, Baltimore, MD ABSTRACT The EXPORT Procedure allows us to output

More information

Quick Data Definitions Using SQL, REPORT and PRINT Procedures Bradford J. Danner, PharmaNet/i3, Tennessee

Quick Data Definitions Using SQL, REPORT and PRINT Procedures Bradford J. Danner, PharmaNet/i3, Tennessee ABSTRACT PharmaSUG2012 Paper CC14 Quick Data Definitions Using SQL, REPORT and PRINT Procedures Bradford J. Danner, PharmaNet/i3, Tennessee Prior to undertaking analysis of clinical trial data, in addition

More information

SAS Survey Report Macro for Creating User-Friendly Descriptive Summaries

SAS Survey Report Macro for Creating User-Friendly Descriptive Summaries SESUG Paper BB-119-2017 SAS Survey Report Macro for Creating User-Friendly Descriptive Summaries Tammiee Dickenson, University of South Carolina; Jessalyn Smith, Data Recognition Corporation; Grant Morgan,

More information

Paper S Data Presentation 101: An Analyst s Perspective

Paper S Data Presentation 101: An Analyst s Perspective Paper S1-12-2013 Data Presentation 101: An Analyst s Perspective Deanna Chyn, University of Michigan, Ann Arbor, MI Anca Tilea, University of Michigan, Ann Arbor, MI ABSTRACT You are done with the tedious

More information

An Introduction to SAS/FSP Software Terry Fain, RAND, Santa Monica, California Cyndie Gareleck, RAND, Santa Monica, California

An Introduction to SAS/FSP Software Terry Fain, RAND, Santa Monica, California Cyndie Gareleck, RAND, Santa Monica, California An Introduction to SAS/FSP Software Terry Fain, RAND, Santa Monica, California Cyndie Gareleck, RAND, Santa Monica, California ABSTRACT SAS/FSP is a set of procedures used to perform full-screen interactive

More information

From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX

From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX Paper 152-27 From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX ABSTRACT This paper is a case study of how SAS products were

More information

To conceptualize the process, the table below shows the highly correlated covariates in descending order of their R statistic.

To conceptualize the process, the table below shows the highly correlated covariates in descending order of their R statistic. Automating the process of choosing among highly correlated covariates for multivariable logistic regression Michael C. Doherty, i3drugsafety, Waltham, MA ABSTRACT In observational studies, there can be

More information

Deccansoft Software Services

Deccansoft Software Services Deccansoft Software Services (A Microsoft Learning Partner) HTML and CSS COURSE SYLLABUS Module 1: Web Programming Introduction In this module you will learn basic introduction to web development. Module

More information

How to Incorporate Old SAS Data into a New DATA Step, or What is S-M-U?

How to Incorporate Old SAS Data into a New DATA Step, or What is S-M-U? Paper 54-25 How to Incorporate Old SAS Data into a New DATA Step, or What is S-M-U? Andrew T. Kuligowski Nielsen Media Research Abstract / Introduction S-M-U. Some people will see these three letters and

More information

Data Presentation ABSTRACT

Data Presentation ABSTRACT ODS HTML Meets Real World Requirements Lisa Eckler, Lisa Eckler Consulting Inc., Toronto, ON Robert W. Simmonds, TD Bank Financial Group, Toronto, ON ABSTRACT This paper describes a customized information

More information

Developing Data-Driven SAS Programs Using Proc Contents

Developing Data-Driven SAS Programs Using Proc Contents Developing Data-Driven SAS Programs Using Proc Contents Robert W. Graebner, Quintiles, Inc., Kansas City, MO ABSTRACT It is often desirable to write SAS programs that adapt to different data set structures

More information

RWI not REI a Robust report writing tool for your toughest mountaineering challenges.

RWI not REI a Robust report writing tool for your toughest mountaineering challenges. Paper SAS2105 RWI not REI a Robust report writing tool for your toughest mountaineering challenges. Robert T. Durie SAS Institute ABSTRACT The degree of customization required for different kinds of reports

More information

The Dataset Attribute Family of Classes Mark Tabladillo, Ph.D., Atlanta, GA

The Dataset Attribute Family of Classes Mark Tabladillo, Ph.D., Atlanta, GA The Dataset Attribute Family of Classes Mark Tabladillo, Ph.D., Atlanta, GA ABSTRACT This presentation will specifically present the dataset attribute family, an abstract parent and its twenty-five children.

More information

A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY

A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY PharmaSUG 2014 - Paper BB14 A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY ABSTRACT Clinical Study

More information

Data Should Not be a Four Letter Word Microsoft Excel QUICK TOUR

Data Should Not be a Four Letter Word Microsoft Excel QUICK TOUR Toolbar Tour AutoSum + more functions Chart Wizard Currency, Percent, Comma Style Increase-Decrease Decimal Name Box Chart Wizard QUICK TOUR Name Box AutoSum Numeric Style Chart Wizard Formula Bar Active

More information

The Proc Transpose Cookbook

The Proc Transpose Cookbook ABSTRACT PharmaSUG 2017 - Paper TT13 The Proc Transpose Cookbook Douglas Zirbel, Wells Fargo and Co. Proc TRANSPOSE rearranges columns and rows of SAS datasets, but its documentation and behavior can be

More information

Copy That! Using SAS to Create Directories and Duplicate Files

Copy That! Using SAS to Create Directories and Duplicate Files Copy That! Using SAS to Create Directories and Duplicate Files, SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and

More information

Assignments (4) Assessment as per Schedule (2)

Assignments (4) Assessment as per Schedule (2) Specification (6) Readability (4) Assignments (4) Assessment as per Schedule (2) Oral (4) Total (20) Sign of Faculty Assignment No. 02 Date of Performance:. Title: To apply various CSS properties like

More information

Square Peg, Square Hole Getting Tables to Fit on Slides in the ODS Destination for PowerPoint

Square Peg, Square Hole Getting Tables to Fit on Slides in the ODS Destination for PowerPoint PharmaSUG 2018 - Paper DV-01 Square Peg, Square Hole Getting Tables to Fit on Slides in the ODS Destination for PowerPoint Jane Eslinger, SAS Institute Inc. ABSTRACT An output table is a square. A slide

More information

An Efficient Tool for Clinical Data Check

An Efficient Tool for Clinical Data Check PharmaSUG 2018 - Paper AD-16 An Efficient Tool for Clinical Data Check Chao Su, Merck & Co., Inc., Rahway, NJ Shunbing Zhao, Merck & Co., Inc., Rahway, NJ Cynthia He, Merck & Co., Inc., Rahway, NJ ABSTRACT

More information

SAS Macro Technique for Embedding and Using Metadata in Web Pages. DataCeutics, Inc., Pottstown, PA

SAS Macro Technique for Embedding and Using Metadata in Web Pages. DataCeutics, Inc., Pottstown, PA Paper AD11 SAS Macro Technique for Embedding and Using Metadata in Web Pages Paul Gilbert, Troy A. Ruth, Gregory T. Weber DataCeutics, Inc., Pottstown, PA ABSTRACT This paper will present a technique to

More information

Using SAS to Analyze CYP-C Data: Introduction to Procedures. Overview

Using SAS to Analyze CYP-C Data: Introduction to Procedures. Overview Using SAS to Analyze CYP-C Data: Introduction to Procedures CYP-C Research Champion Webinar July 14, 2017 Jason D. Pole, PhD Overview SAS overview revisited Introduction to SAS Procedures PROC FREQ PROC

More information

Contents of SAS Programming Techniques

Contents of SAS Programming Techniques Contents of SAS Programming Techniques Chapter 1 About SAS 1.1 Introduction 1.1.1 SAS modules 1.1.2 SAS module classification 1.1.3 SAS features 1.1.4 Three levels of SAS techniques 1.1.5 Chapter goal

More information

Knit Perl and SAS Software for DIY Web Applications

Knit Perl and SAS Software for DIY Web Applications Knit Perl and SAS Software for DIY Web Applications Abstract Philip R Holland, Consultant, Holland Numerics Limited, UK If your organisation develops a web-based SAS application for 30+ users, then the

More information

A Revolution? Development of Dynamic And Hypertext Linked Reports With Internet Technologies and SAS System

A Revolution? Development of Dynamic And Hypertext Linked Reports With Internet Technologies and SAS System A Revolution? Development of Dynamic And Hypertext Linked Reports With Internet Technologies and SAS System Jeff F. Sun, Blue Cross Blue Shield of North Carolina, Durham, North Carolina Abstract The current

More information

HTML and CSS COURSE SYLLABUS

HTML and CSS COURSE SYLLABUS HTML and CSS COURSE SYLLABUS Overview: HTML and CSS go hand in hand for developing flexible, attractively and user friendly websites. HTML (Hyper Text Markup Language) is used to show content on the page

More information

BY S NOTSORTED OPTION Karuna Samudral, Octagon Research Solutions, Inc., Wayne, PA Gregory M. Giddings, Centocor R&D Inc.

BY S NOTSORTED OPTION Karuna Samudral, Octagon Research Solutions, Inc., Wayne, PA Gregory M. Giddings, Centocor R&D Inc. ABSTRACT BY S NOTSORTED OPTION Karuna Samudral, Octagon Research Solutions, Inc., Wayne, PA Gregory M. Giddings, Centocor R&D Inc., Malvern, PA What if the usual sort and usual group processing would eliminate

More information

Uncommon Techniques for Common Variables

Uncommon Techniques for Common Variables Paper 11863-2016 Uncommon Techniques for Common Variables Christopher J. Bost, MDRC, New York, NY ABSTRACT If a variable occurs in more than one data set being merged, the last value (from the variable

More information

Tales from the Help Desk 6: Solutions to Common SAS Tasks

Tales from the Help Desk 6: Solutions to Common SAS Tasks SESUG 2015 ABSTRACT Paper BB-72 Tales from the Help Desk 6: Solutions to Common SAS Tasks Bruce Gilsen, Federal Reserve Board, Washington, DC In 30 years as a SAS consultant at the Federal Reserve Board,

More information

Are you Still Afraid of Using Arrays? Let s Explore their Advantages

Are you Still Afraid of Using Arrays? Let s Explore their Advantages Paper CT07 Are you Still Afraid of Using Arrays? Let s Explore their Advantages Vladyslav Khudov, Experis Clinical, Kharkiv, Ukraine ABSTRACT At first glance, arrays in SAS seem to be a complicated and

More information

CMISS the SAS Function You May Have Been MISSING Mira Shapiro, Analytic Designers LLC, Bethesda, MD

CMISS the SAS Function You May Have Been MISSING Mira Shapiro, Analytic Designers LLC, Bethesda, MD ABSTRACT SESUG 2016 - RV-201 CMISS the SAS Function You May Have Been MISSING Mira Shapiro, Analytic Designers LLC, Bethesda, MD Those of us who have been using SAS for more than a few years often rely

More information

ABSTRACT INTRODUCTION MACRO. Paper RF

ABSTRACT INTRODUCTION MACRO. Paper RF Paper RF-08-2014 Burst Reporting With the Help of PROC SQL Dan Sturgeon, Priority Health, Grand Rapids, Michigan Erica Goodrich, Priority Health, Grand Rapids, Michigan ABSTRACT Many SAS programmers need

More information

EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT)

EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT) EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT) DESCRIPTION: This example shows how to combine the data on respondents from the first two waves of Understanding Society into

More information

Data Quality Review for Missing Values and Outliers

Data Quality Review for Missing Values and Outliers Paper number: PH03 Data Quality Review for Missing Values and Outliers Ying Guo, i3, Indianapolis, IN Bradford J. Danner, i3, Lincoln, NE ABSTRACT Before performing any analysis on a dataset, it is often

More information

3. Almost always use system options options compress =yes nocenter; /* mostly use */ options ps=9999 ls=200;

3. Almost always use system options options compress =yes nocenter; /* mostly use */ options ps=9999 ls=200; Randy s SAS hints, updated Feb 6, 2014 1. Always begin your programs with internal documentation. * ***************** * Program =test1, Randy Ellis, first version: March 8, 2013 ***************; 2. Don

More information

A Quick and Gentle Introduction to PROC SQL

A Quick and Gentle Introduction to PROC SQL ABSTRACT Paper B2B 9 A Quick and Gentle Introduction to PROC SQL Shane Rosanbalm, Rho, Inc. Sam Gillett, Rho, Inc. If you are afraid of SQL, it is most likely because you haven t been properly introduced.

More information

So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines

So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines Paper TT13 So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines Anthony Harris, PPD, Wilmington, NC Robby Diseker, PPD, Wilmington, NC ABSTRACT

More information

Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ

Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ Paper 74924-2011 Exporting Variable Labels as Column Headers in Excel using SAS Chaitanya Chowdagam, MaxisIT Inc., Metuchen, NJ ABSTRACT Excel output is the desired format for most of the ad-hoc reports

More information

Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet

Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet 1. Macros 1.1 What is a macro? A macro is a set of one or more actions

More information

Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies

Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies Correcting for natural time lag bias in non-participants in pre-post intervention evaluation studies Gandhi R Bhattarai PhD, OptumInsight, Rocky Hill, CT ABSTRACT Measuring the change in outcomes between

More information

Quick Results with the Output Delivery System

Quick Results with the Output Delivery System Paper 58-27 Quick Results with the Output Delivery System Sunil K. Gupta, Gupta Programming, Simi Valley, CA ABSTRACT SAS s new Output Delivery System (ODS) opens a whole new world of options in generating

More information

A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes

A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes Brian E. Lawton Curriculum Research & Development Group University of Hawaii at Manoa Honolulu, HI December 2012 Copyright 2012

More information

A Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN

A Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN Paper 045-29 A Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN ABSTRACT: PROC MEANS analyzes datasets according to the variables listed in its Class

More information

2. Don t forget semicolons and RUN statements The two most common programming errors.

2. Don t forget semicolons and RUN statements The two most common programming errors. Randy s SAS hints March 7, 2013 1. Always begin your programs with internal documentation. * ***************** * Program =test1, Randy Ellis, March 8, 2013 ***************; 2. Don t forget semicolons and

More information

TIPS AND TRICKS: IMPROVE EFFICIENCY TO YOUR SAS PROGRAMMING

TIPS AND TRICKS: IMPROVE EFFICIENCY TO YOUR SAS PROGRAMMING TIPS AND TRICKS: IMPROVE EFFICIENCY TO YOUR SAS PROGRAMMING Guillaume Colley, Lead Data Analyst, BCCFE Page 1 Contents Customized SAS Session Run system options as SAS starts Labels management Shortcut

More information

Paper An Automated Reporting Macro to Create Cell Index An Enhanced Revisit. Shi-Tao Yeh, GlaxoSmithKline, King of Prussia, PA

Paper An Automated Reporting Macro to Create Cell Index An Enhanced Revisit. Shi-Tao Yeh, GlaxoSmithKline, King of Prussia, PA ABSTRACT Paper 236-28 An Automated Reporting Macro to Create Cell Index An Enhanced Revisit When generating tables from SAS PROC TABULATE or PROC REPORT to summarize data, sometimes it is necessary to

More information

MIS Reporting in the Credit Card Industry

MIS Reporting in the Credit Card Industry MIS Reporting in the Credit Card Industry Tom Hotard, Acxiom Corporation ABSTRACT In credit card acquisition campaigns, it is important to have the ability to keep track of various types of counts. After

More information

USING PROC GMAP AND DRILL-DOWN GRAPHICS FOR DATA QUALITY ASSURANCE Meghan Arbogast, Computer Sciences Corporation, Corvallis, OR

USING PROC GMAP AND DRILL-DOWN GRAPHICS FOR DATA QUALITY ASSURANCE Meghan Arbogast, Computer Sciences Corporation, Corvallis, OR USING PROC GMAP AND DRILL-DOWN GRAPHICS FOR DATA QUALITY ASSURANCE Meghan Arbogast, Computer Sciences Corporation, Corvallis, OR ABSTRACT Maps are particularly useful to review the distribution of biological

More information

Get SAS sy with PROC SQL Amie Bissonett, Pharmanet/i3, Minneapolis, MN

Get SAS sy with PROC SQL Amie Bissonett, Pharmanet/i3, Minneapolis, MN PharmaSUG 2012 - Paper TF07 Get SAS sy with PROC SQL Amie Bissonett, Pharmanet/i3, Minneapolis, MN ABSTRACT As a data analyst for genetic clinical research, I was often working with familial data connecting

More information

ABSTRACT INTRODUCTION WORK FLOW AND PROGRAM SETUP

ABSTRACT INTRODUCTION WORK FLOW AND PROGRAM SETUP A SAS Macro Tool for Selecting Differentially Expressed Genes from Microarray Data Huanying Qin, Laia Alsina, Hui Xu, Elisa L. Priest Baylor Health Care System, Dallas, TX ABSTRACT DNA Microarrays measure

More information

Indenting with Style

Indenting with Style ABSTRACT Indenting with Style Bill Coar, Axio Research, Seattle, WA Within the pharmaceutical industry, many SAS programmers rely heavily on Proc Report. While it is used extensively for summary tables

More information

Making a SYLK file from SAS data. Another way to Excel using SAS

Making a SYLK file from SAS data. Another way to Excel using SAS Making a SYLK file from SAS data or Another way to Excel using SAS Cynthia A. Stetz, Acceletech, Bound Brook, NJ ABSTRACT Transferring data between SAS and other applications engages most of us at least

More information

Data Acquisition and Integration

Data Acquisition and Integration CHAPTER Data Acquisition and Integration 2 2.1 INTRODUCTION This chapter first provides a brief review of data sources and types of variables from the point of view of data mining. Then it presents the

More information

Efficient Processing of Long Lists of Variable Names

Efficient Processing of Long Lists of Variable Names Efficient Processing of Long Lists of Variable Names Paulette W. Staum, Paul Waldron Consulting, West Nyack, NY ABSTRACT Many programmers use SAS macro language to manipulate lists of variable names. They

More information

Open Problem for SUAVe User Group Meeting, November 26, 2013 (UVic)

Open Problem for SUAVe User Group Meeting, November 26, 2013 (UVic) Open Problem for SUAVe User Group Meeting, November 26, 2013 (UVic) Background The data in a SAS dataset is organized into variables and observations, which equate to rows and columns. While the order

More information

AD07 A Tool to Automate TFL Bundling

AD07 A Tool to Automate TFL Bundling AD07 A Tool to Automate TFL Bundling Mark Crangle ICON Clinical Research Introduction Typically, requirement for a TFL package is a bookmarked PDF file with a table of contents Often this means combining

More information

3N Validation to Validate PROC COMPARE Output

3N Validation to Validate PROC COMPARE Output ABSTRACT Paper 7100-2016 3N Validation to Validate PROC COMPARE Output Amarnath Vijayarangan, Emmes Services Pvt Ltd, India In the clinical research world, data accuracy plays a significant role in delivering

More information

Multiple Graphical and Tabular Reports on One Page, Multiple Ways to Do It Niraj J Pandya, CT, USA

Multiple Graphical and Tabular Reports on One Page, Multiple Ways to Do It Niraj J Pandya, CT, USA Paper TT11 Multiple Graphical and Tabular Reports on One Page, Multiple Ways to Do It Niraj J Pandya, CT, USA ABSTRACT Creating different kind of reports for the presentation of same data sounds a normal

More information

Fly over, drill down, and explore

Fly over, drill down, and explore ABSTRACT Paper 79-2013 Fly over, drill down, and explore Suzanne Brown, HealthInsight New Mexico, Albuquerque, NM Data often have a spatial dimension, whether it is a five-year financial plan and annual

More information

Get into the Groove with %SYSFUNC: Generalizing SAS Macros with Conditionally Executed Code

Get into the Groove with %SYSFUNC: Generalizing SAS Macros with Conditionally Executed Code Get into the Groove with %SYSFUNC: Generalizing SAS Macros with Conditionally Executed Code Kathy Hardis Fraeman, United BioSource Corporation, Bethesda, MD ABSTRACT %SYSFUNC was originally developed in

More information