NESUG 2011 Papers - Index
144 papers. Source: NESUG (Northeast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | 10 Steps to Easier SAS Code Maintenance | Jessica R. Hampton | Part of the author's job at CIGNA is to produce on a yearly basis a number of rates used in national healthcare quality surveys and accreditation performance measures. Each year when the revised specs came out, she got tired of having to update processes manually, hunting through programs for diagnosis codes and dates that needed to be changed, copying and pasting the same updates and code blocks so many times she lost count, and then inevitably finding out she'd missed a spot when the program either bombed, or - worse - ran all the way through but returned last year's data instead of this year's or outdated diagnosis codes. Then when the revisions to the revisions came out and those revised revisions begot new revisions as well, she had to keep going through the same tedious process. This paper describes how to make yearly code maintenance tasks easier in 10 steps, using simple organization techniques, appropriate documentation, macro variables, and parameterized macros. 1 | macro variable, sample | 9 | |
| 2 | A Comparison of PDLREG and GAM Procedures in Measuring Dynamic Effects | Patralekha Bhattacharya | predictor variable, proc gam, response variable, estimate, time series data, lag function, time series analysis, regression analysis, monte carlo, binomial distribution | 11 | ||
| 3 | A Fast Programming Channel from DDT to Datasets in Pharmaceutical Industries | Jianfeng Wang, Linghua Zhou |
Typing the variable name, label and format from data definition table (DDT) into the SAS programs to create the corresponding SAS datasets is a time consuming task. Most of the time, the work is tedious and prone to making mistakes. The ongoing changes to the variable name, label and format also increases the difficulty of keeping them updated before the final statistical analysis. In order to deduce SAS programming work load and minimize the possibility of making errors during creating the datasets, we have explored an easy programming way which has been explained here. In this method, the program reads the variable name, label and format from DDT which is saved as a Microsoft EXCEL file, it integrates the information into SAS macro variables. After that, the program exports variable name, label, format and value one by one following the sequence defined in DDT. This method can effectively reduce the time of datasets derivation and avoid potential typing errors |
macro variable, excel, dataset, macro definition | 7 | |
| 4 | A Macro for Safely Merging Many Data Sets | Taylor R. Young | When SAS merges datasets that have variable names in common, only one instance of the variable name is preserved and the last occurrence of a shared variable name overwrites all previously encountered data. As a result, a SAS user working with unfamiliar datasets may unknowingly lose valuable data particularly if the merge involves a large number of datasets and/or variables. Expanding on previously published methods using PROC SQL and the DICTIONARY.COLUMNS table to dynamically rename common variables before merging two datasets, this paper will present methodology to safely merge all datasets in a library by dynamically renaming and relabeling any variables with the same name |
do loop, macro variable, proc sql, proc step, label statement | 5 | |
| 5 | A Missing Guide for a Comprehensive Kaplan-Meier Plot | Jiannan Hu | Kaplan-Meier plot is widely used for visual comparison of censored survival/failure or time to event curves in oncology or other therapeutic areas. However, not all plots are informative enough. A comprehensive plot w ith all the key statistical information demonstrated is presented in this paper to facilitate a one stop analysis in drug development for decision maker, regulatory agencies or trial reviewers, thus speed up the process in statistical analysis. The survival anal ysis in clinical trial setting is introduced, and a complete SAS code for the whole analysis is provided in this paper. Key Words SAS, Survival Analysis, Kaplan-Meier (KM) Curve, p-value, log-rank test | survival analysis, kaplan-meier plot, proc phreg, data science, proc step | 7 | |
| 6 | A Practical and Efficient Approach in Generating AE (Adverse Events) Reports Within a Clinical Study Environment | Jiannan Hu | When a clinical trial is at th e stage of the submission to regu latory authorities, or at the investigation of the interim analysis, most of the cases, safety analysis plays a key part in deciding whether the trial will be ongoing and drug is approved or not according to whether the drug is safe or not. Adverse even t analysis is a pivotal piece in the safety analysis, and it is common in almost every trial, and every clin ical study report. The adverse events related to study drug will be summarized, as well as by severity, by relationship. They are tabulated by MedDRA system organ class (SOC) and preferred term (PT), and each subject is counted only once, and the sorting is by descending frequency of SOC and PT. And the AE analysis is different from ot her safety analysis and efficacy analysis. However, there are similarities among the adverse event analysis within a study | adverse events, system organ class, clinical trial, macro variable, proc freq, macro definition | 8 | |
| 7 | A Practical Method to Generate Desirable Group Sizes by Performing Adaptive Randomization | Feifei Yang | Randomization is the essential part to prevent selection bias in clinical trials or other randomized intervention studies. By implementing the random allocation, participants can be assigned to different comparison groups and assignment that can not be predicted in advance. When investigators want treatment groups in equal size during the course of the trials, adaptive randomization method is used to achieve both random assignment and balanced group size. This paper presents a macro to perform adaptive randomization. PROC SQL and PROC SURVEYSELECT are mainly used to facilitate this |
randomization, sample, proc step | 5 | |
| 8 | A SAS Macro for Transposing Large Datasets | Chen Li | When facing the task of transposing a large vertical data set with multiple records per person into the correspond- ing horizontal data set with a single record per person, we commonly use the SAS methods of DATA STEP and PROC TRANSPOSE. For each particular data set, it is important to consider the unique requirements and specif i- cations for this step of the data cleaning process. There are often many variables to be transposed and a differing amount of records for each person. Other details that need to be considered are column positions and headings, variable types and various design specifications. These obstacles can make this work tedious, repetit ive, time - consuming and prone to error. Thus, a question naturally arises from this process, that is, can we generalize the above procedure by creating a SAS macro to accomplish this objective? This paper presents a SAS macro that aims to provide a solut ion to this problem |
sample, proc transpose, proc step | 4 | |
| 9 | A Tutorial on the SAS Macro Language | John J. Cohen | The SAS Macro language is another language that rests on top of regular SAS code. If used properly, it can make programming easier and more fun. However , not every program is improved by using macros. Furthermore, it is another language syntax to learn, and can create problems in debugging programs that are even more entertai n- ing than those offered by regular SAS. We will discuss using macros as code gene rators, saving repetitive and tedious effort, for passing parameters through a program to avoid hard coding values, and to pass code fragments, thereby making certain tasks easier than using regular SAS alone. Macros facilitate conditional execution and can be used to create program modules that can be standardized and re -used throughout your organization. Finally, macros can help us create interactive systems in the absence of SAS/AF. When we are done, you will know the difference between a macro, a macro variable, a macro statement, and a macro function |
macro variable, macro definition, macro facility, macro loop, macro call, do loop, macro function, title statement, macro put, %if-%then-%else | 10 | |
| 10 | A Utility to Validate the LoT | Mukesh Garg, David Etris, Vikash Jain |
In any clinical study reporting environment, while submitting a deliverable to an external sponsor, one of the validation tasks performed by the programmer is to compare the List of tables (LoT) with the output reports. This is done to ensure that the list of reports outlined in the LoT is in sync with reporting deliverable table number's and its respective titles. If the number of reports in the deliverable are exceptionally high (e.g, in 100's), then this manual comparison becomes a laborious and daunting task for a programmer and also its prone to a high chance of error. The goal of this utility is to serve the following two purposes: 1. To benefit the validation programmer by flagging any such differences through an automated compliance report generation. 2 | data cleaning, clinical trial | 4 | |
| 11 | A Validation Macro to Check Compliance of CDISC SDTM Data | Hany Aboutaleb | The CDISC SDTM Implementation Guide provides specifications for 30 domains or more and new domains are alw ays being developed. It is important to check the CDISC website for the latest updates before you begin a new project. This validation macro will check the compliance of the SDTM domains as per the most recent SDTM Implementation Guide (SDTM IG) plus our company specific domains . This check will reduce risk of delays in the submission review process. The checks include: domain name, domain description, variable name, variable order, variable label, variable type, and variable length | data cleaning, sdtm domain, excel, cdisc | 13 | |
| 12 | A View Toward Performance | Edward Heaton | Often we need to preprocess our data through a DATA STEP before we submit it to some SAS Procedure. When our data are very large - billions of rows - this processing of reading the entire dataset, making the modifications to each row, writing the entire dataset back out to disk, and then reading then entire dataset back into the PROC can take a very long time. The author proposes the use of a DATA view to process the data one row at a time and then to send that row directly to the PROC for processing. With very large datasets the time savings can be on the order of 60% |
cpu time, dataset, proc step, proc freq, proc sql | 8 | |
| 13 | A Way to Work with Invoice Flat Files in SAS | Anjan Matlapudi, J. Daniel Knapp |
This paper illustrates how to design an appropriate input program to handle invoice files electronically generated from a DB2 database. The invoice is a text file report docum ent issued from the pharmacy claim payer which displays the pharmacy claim payment statistics for a given accounting period. The invoice file is the output of a COBOL program pu lling data from a DB2 database which is then brought to the PC via | txt, input statement, proc means, macro variable, proc step | 6 | |
| 14 | Adaptive Randomization: Institutional Balancing Using SAS Macro | Rita Tsang, Katherine Kacena |
Adaptive designs in clinical trials have become increasingly popular and well received in drug development. This approach needs to be prospectively planned and includes such trial designs as adaptive dose finding, adaptive group sequential, sample size reassessment, seamless phase II/III, and population enrichment. We also consider institutional balancing (IB) in the randomization algorithm (Zelen, 1974) to be an adaptive feature which has the potential of making the trial more efficient. This kind of adaption optimizes the likelihood of treatment balance across risk strata and at the site (institution) level. This paper will introduce programs that perform adaptive randomization based on an IB rule of a predefined treatment and control ratio within a site by utilizing SAS macro. These programs will dynamically assign the first available treatment or control to a patient that enters the study based on a risk stratum when the IB rule is satisfied | randomization, macro variable, sample, macro definition | 12 | |
| 15 | An Animated Guide: A Program to Read Information in SAS Headers and Produce Reports for Programming Managers | Russell M. Lavery | This paper describes, and provides to the public, a program that can be used to help manage a department of SAS programmers. The program will, if a user specifies one or more, top level directories on a windows machine, recursively search under those top level directories and find every SAS program and file under those directories. It will then create data sets containing information on every file and program. It will also create pdf documentation on programs using the program headers and comments. Compare this functionality to that of the dictionary tables which only contain data about tables in established librefs and no information about programs | dictionary tables, sas programmer | 20 | |
| 16 | An Animated Guide: An Introduction to Latent Class Clustering in SAS | Russell M. Lavery | This is the first in a planned series of three papers on Latent Class Analysis. Latent Clustering Analysis (LCA) is a method that uses categorical variables to discover hidden, or latent, groups and is used in market segmentation and medical research. This paper explores PROC LCA, a free SAS add-in created by The Methodology Center at Penn State University. Using this free, and easy to install, add-in allows users of SAS to perform Latent Class Clustering using syntax with which they are already familiar. The managerial output of the Latent Cluster Analysis, (sometimes called Latent Class Analysis) is similar to output from other clustering methods |
proc step, latent variable, proc freq, cluster analysis, goodness of fit, likelihood function, raw data, proc rank, sample | 16 | |
| 17 | An Animated Guide: The SAS DATA Step Debugger | Russell M. Lavery | The DATA STEP Debugger (DSD) simplifies the debugging of individual Data Steps and not whole SAS programs. The SAS Debugger is not a "use everyday" tool, but is extremely useful when debugging complex data steps. Using the de- bugger requires some understanding of how SAS works because the DSD does not issue any error messages. When using the DSD, a programmer mentally compares what s/he sees, displayed in the Program Data Vector ( PDV), with what s/he expected to see. Critical, to use of the DSD, is an understanding of the PDV and, as a side issue, the DSD is an excellent way to learn the PDV. The goal of a programmer should be to learn to combine DSD commands and to link those combinations to a key or a macro. Linking a series of commands to a key, or a macro makes the DSD much more powerful |
data step, sas log, do loop, macro definition, macro loop | 10 | |
| 18 | An Animated Look at the Westward Movement of the US Population Center | Michael S. Zdeb | When data have a spatial component, a map is an excellent way to present that data. Sometimes the data also has a time component in that the spatial component varies over time. An animation showing multiple maps in succession is often a solution of how to show both a space and time component. This paper shows how to produce an animated map that illustrates the westward movement of the US population center with a map shown for each 10-year interval from 1790 through 2010. In addition to showing how to produce the animated map, the paper shows how to use PROC GINSIDE to find the county and state of the population center when the data comprise only the longitude and latitude of the center. The GEODIST function is used to find the how far (in miles) the center moves every ten years |
data step, proc step, proc sql | 8 | |
| 19 | An Array of Conditions: Using Arrays to Condense Repetitive Code | Amanda C. Browning | Arrays are often seen as intimidating and are sometimes avoided by SAS programmers, possibly because they are conceptually difficult compared to other techniques. As a result, programmers may be missing out on a strategy that can save time and increase accuracy. Arrays can make coding more efficient and reduce the possibility of error in programming by condensing repetitive coding. The purpose of this paper is to demonstrate how arrays can simplify complex conditional coding problems. The topics covered in this paper are suitable for beginner and intermediate programmers | txt, array | 7 | |
| 20 | An Easy Route to a Missing Data Report with ODS + PROC FREQ + A Data Step | Michael S. Zdeb | A first step in analyzing data is making a decision on how to handle missing values. That decision could be deletion of observations and/or variables with excess missing data, substitution of imputed values for missing values, or taking no action at all if the amount of missing data is insignificant and not likely to affect the analysis. This paper shows how to use an ODS OUTPUT statement, PROC FREQ, and some DATA STEP programming to produce a missing data report showing the percentage of missing data for each variable in a data set. Also shown is a method for identifying and dropping from a data set all variables with either all or a high percentage of missing values. The method of producing the missing data report is less complicated and more compact than several |
proc step, missing value, proc freq, proc sql, macro variable, output delivery system, data step, numeric variable, ods output, proc contents, proc format, proc mi, proc print, ods listing, label statement | 10 | |
| 21 | An Introduction to Creating Multi-Sheet Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | excel, xls | 2 | ||
| 22 | An Optimal Search Process of "Eigen Knots" for Spline Logistic Regression | John Gao, Cheryl Caswell |
The spline regression method usually defines a series piecewise linear variables from a nonlinear continuous variable. In the new spline regression method, the Knots for the piecewise linear variables are derived from an optimal selection processing. And also the categorical variable has been regrouped by using the optimal processing. First, the all data points have been sorted from low to high based on the value of the variable. Then a portion of the data points in the low end are picked up for the initial regression processing as seed group. The second group as a comparison group is that extra data po ints near by the seed group are added into the seed group so as to form the combination of these two groups. Then, the statistical analysis is to be conducted to test if the point between seed group and comparison group to be "eigen knot" based on the X 2 test on the ratio of likelihood functions. The X2 test will decide if the seed group is significant different from comparison group | regression analysis, likelihood function, logistic regression, spline, predictor variable, logistic distribution, attrition, data mining, proc hpsplit, neural network | 7 | |
| 23 | Applying INVALUE STATEMENT in PROC FORMAT for Ordering Character Variables | Prajitha Nair | PROC FORMAT is one of the most useful and powerful SAS tools. The FORMAT procedure enables the SAS programmers t o define their user -defined formats and informats for variables to assign the data labels to the data values used during programming. This procedure acts as a catalyst for handling different situations . While generating the report for the TFLs in clinical trial projects using PROC REPORT, the programmers especially those who are novice in SAS consume most of the time in ordering the values in the desired way,. This paper explains the creation of ordering values for character variables using INVALUE statement of PROC FORMAT, rather than using IF-THEN/ELSE or SELECT statement. The ordering of character variables in a manner different from alphabetical order through the application of user defined informats and formats is described |
proc step, character variable, proc format, numeric variable, proc report, proc means, if-then-else, select, user-defined format, put statement | 8 | |
| 24 | Assign Overpayment to Insurance Data with Adlustments | Qiling Shi | The purpose of this study is to assign overpayment to insurance data with adjustments using SAS . Suppose we have an algorithm to calculate the overpayment for each insurance ID, we need to join back with the original data to get the adjustments and assign the overpayments to the insurance claims with adjustments. Since the overpayments are calculated by rolling up the original dataset , we need to join back to get the adjustments by the same insu rance ID. There are some rules we need to consider to assign the values of overpayments after this join back. A SAS macro with procedures such as PROC SQL and DATA STEPS is employed to do the data analysis |
insurance claims, proc sql, proc step | 6 | |
| 25 | Authoring Quality Process Documents for Clinical Trial Programmers | Jane E. Marrer | Process documents are a critical tool for any organization's success because they capture procedures that our staff must follow. The feedback we received on existing process documents used in our statistical programming group revealed issues involving two areas of concern: 1) authoring quality process documents, and 2) understanding the different types of process documents and determining what worked best for our staff. We established critical-to-quality characteristics for process documents and identified the preferred format for our staff. In this paper, we will share our approach to re-organizing and re-writing our process documentation as a result of our findings. These actions will provide our programming staff with high quality, consistent, accurate, process documents that they can follow easily. This will support efficient, quality work and regulatory compliance for our group | clinical trial, quality control | 13 | |
| 26 | Automating Concatenation of PDF/RTF Reports Using ODS DOCUMENT | Shirish Nalavade, Shubha Manjunath |
As part of clinical trial reporting, a large number of PDF/RTF reports are created and at the completion of a major milestone in a study, it is required to comb ine all reports in a single document for easy delivery and review. Output Delivery System (ODS) in V9.2 provides new and enhanced capabilities to programmers for reporting and displaying clinical tria ls results. One such enhancement to ODS is the introduction of PROC DOCUMENT, which provides great er flexibility to modify/update reports. Apart from selectively displaying listing/graphs in the report, we can utilize ODS DOCUMENT capability to concatenate files and replay it in different destinations as a single document. Currently, SAS does not provide a capability to append RTF/PD F files, appending file is f easible only by using third party software outside SAS |
proc step, temporary dataset, by group processing, macro parameter, file statement, permanent library, proc report | 9 | |
| 27 | Automating SDTM File Creation: Metadata Files Speeding the Process | Daphne E. Ewing | For small to mid-size companies that cannot afford to purchase expensive tools to "automate" the SDTM file creation process, tools can be prepared to streamline this process. SDTM conversion can be complicated as clinical study nuances have to be built into the process. Metadata files that are built first by knowing what data are coming from the Clinical Data Management (C DM) system along with describing each CRF field as an SDTM variable begin the mapping process. Adding to these meta data files key information on how to transform the data from its source files into the resulting SDTM target variables round out the metadat a files. Clinical Databases do not lend themselves to creation of 100% SDTM compliant files, thus requiring some processing/mapping prior to having SDTM submission ready files. The use of metadata files makes it efficient to create utility programs that will ensure that there are no holes in the process of getting from the source data into the SDTM structure | sdtm domain, controlled terminology, raw data, clinical trial, sas library, excel, data cleaning, cdisc | 7 | |
| 28 | Baseball with Popcorn, Statistics and SAS - What A Mix | David W. Franklin | The year is almost over. At the end of September another year of baseball will be over. Then the talk will be over who was the best player for the season - a look at the statistics will those who make this decision. Statistics in sports has been around since sports were first played, and where there is statistics, SAS is not far behind. This paper looks at Baseball statistics, how they were developed, then look at the how some of the more common statistics are calculated. Finally, a program will be presented that was developed and used in local minor league to solve the riddle of who was the best pitcher and batter | moving average, excel, sample, proc rank | 8 | |
| 29 | Building Provider Panels: An Application for the Hash of Hashes | Judy Loren, Richard A. DeVenezia |
Did you know that an element of a hash table can be another hash table? How cool is that? Kind of like a multidimensional array on steroids. You don't need to know in advance how many elements you will have nor how deep they will nest. Furthermore, you can do this without a single macro variable! The "hash of hashes" technique provides one solution to a classic challenge in healthcare: how to process claims data to determine which provider within a given specialty is most likely overseeing a patient's care. The algorithm requires examining an unpredictable amount of information and making decisions at defined breakpoints. This paper will demonstrate the code for a "hash of hashes" solution and compare it to two other approaches: the double DOW and SQL. Along the way we'll make use of some features of hash tables that are new in 9.2. If you love hash tables, you'll flip for the hash of hashes! | hash table, proc sql, hash iterator, do loop, sample, proc freq, hash of hashes | 9 | |
| 30 | Cash-Flow Modeling for Fixed Income Securities? A New Approach Using SAS Risk Management for Banking Solution | Sunny Zhang | Cash flow modeling is critical to valuation and analysis of fixed-income securities including ABS, MBS, and CDO. Traditionally, due to the complexity of cash flow structure of various loans and receivables, the cash flow modeling and validation process is often a black box and is difficult for the investors to understand how their portfolio performance and securities values are associated with, and impacted by, the performance of underlying assets such as credit card receivables or mortgage. As a result, the investors cannot obtain the insights about the future performance trend of the assets to effectively design and execute their investment and risk mitigation strategies. This is also one of the lessons learned from the financial crisis. The paper describes a new and transparent approach that utilizes SAS Risk Management for Banking to address the above issues | sas risk, pd, credit card, interest rate, default rate, numeric functions, recovery rate, sample, correlation, proc step, monte carlo | 14 | |
| 31 | Character Functions: A Hands-on Workshop | Jason L. Ford | SAS includes many functions to deal with character strings. Programmers can take parts of strings to create a new variable, such as taking the last name from a list of names. Programmers can also verify the contents of a character string, get rid of unwanted letters or blanks, and change letters or words as needed. The SUBSTR and SCAN functions allow the programmer to make new variables out of parts of existing variables. The VERIFY function allows the programmer to get information about the contents of a string. TRANSLATE and TRAWRD functions change the contents of a character string. The TRIM, LEFT, STRIP, and COMPBL functions get rid of unwanted blanks, while the COMPRESS function gets rid of any unwanted characters. CATS, CATT, and CATX allows for various methods for concatenation. Using these tools in creative ways, a programmer can solve many common problems that arise with character functions | character variable, character functions, length statement, verify, index, tranwrd function | 12 | |
| 32 | Choosing ODS Styles: How to Enter your Data in a SAS Fashion Show | Gwen Babcock | SAS's output delivery system (ODS) can be used to produce output in a wide variety of formats, such as HTML, Adobe PDF, RTF, and others. To control the appearance of ODS output, styles are used. SAS provides many built-in styles to choose from, and additional styles can be created using the TEMPLATE procedure. Often, the eas- iest way to create a new style is to modify an existing style which is close in appearance to the desired style. A list of existing styles can be obtained using PROC TEMPLATE. Since it is difficult to know how a style will appear based on its name alone, two methods displaying an example of each style are discussed. For each method, PDF and HTML examples are provided. The style examples can be viewed and the most suitable one selected for use or mod- ification |
macro variable, call execute, ods html, dataset, output, sample, proc template, ods pdf | 6 | |
| 33 | Combining the Results from Multiple SAS PROCs into a Publication Quality Table | Robert Kabacoff | Data analysts are often faced with the daunting and repetitive task of extract ing information from multiple SAS procedures and combining them into an attractive publication-ready table. This paper demonstrates simple me- thods of accomplishing this task using SAS MACRO, SAS ODS, PROC REPORT and PROC FORMAT. A SAS macro (%WILCOXON) is developed for examining difference between two groups on a set of ordinal or continuous outcomes. The user specifies a SAS data set, a binary grouping variable, and one or more outcome variables. The macro then generates a set of analyses using PROC NPAR1WAY and PROC MEANS, calculates an effect size for each group difference, and generates a compact, publication quality table. Optionally, the user can sort the results, add annotations, and generate publication quality graphs |
proc step, effect size, response variable, proc report, proc npar1way, histogram, dataset, sample, box plot, proc format, proc sql, p-value, sample size, significance level, label statement, output delivery system, wilcoxon test, create table, ods rtf, macro definition, macro variable, %if-%then-%else | 20 | |
| 34 | Common Sense Tips and Clever Tricks for Programming with Extremely Large SAS Data Sets | Kathy Hardis Fraeman | Working with extremely large SAS data sets - where the numbers of observations are in the hundreds of millions - can pose many challenges to the SAS programmer. Simple SAS code, including programs that involve basic DATA STEP programming and ordinary PROC SORTs, can become extremely difficult to run on such large data sets. Encountered problems range from extremely long run times, exceeding available memory, and seemingly unexplainable and random I/O errors that cause previously working programs to crash unexpectedly. This paper discusses common sense tips and clever tricks developed in Base SAS to improve the programming process with these extremely large SAS data sets. SORT/MERGEs on large data sets can be avoided with a trick with using SAS formats and hash tables, and the SAS options SGIO (Scatter-read/Gather-write Input Output) and BUFNO can be combined to avoid I/O errors that sometimes occur when reading extremely large SAS data sets |
dataset, proc sort, proc step, error message, flag variable, insurance claims, character variable, hash table, reference data, sample | 8 | |
| 35 | Computing Area Under the Curve (AUC) Using Nested Arrays | Michael Pannucci | This paper describes how to use nested arrays as lookup objects when computing summary measures across a data profile. This will be demonstrated within the context of area under the curve (AUC) calculations. A single array can be used to index all of the values within an observation that will enter the computation. However, if not all observations in the dataset contain the same number of values over which to compute the area under the curve, then we need a way of dynamically executing the calculation. Another array that contains the next available value can be created and nested within the parent array during execution. The concept is similar to that of nesting functions, but the control is completely user-defined. The methods used here synthesize many core DATA STEP programming elements, including transposing a dataset horizontally, arrays, and iterative and conditional loops |
auc, proc means, numeric functions | 7 | |
| 36 | Confirmatory Factor Analysis and Structural Ehuation Modeling of Non-cognitive Assessments Using PROC CALIS | Steven L. Holtzman, Sailesh Vezzu |
Noncognitive assessments, which measure constructs such as time management, goal-setting and personality, are becoming more prevalent today in research within the domains of academic performance and workforce readiness. Many instruments that are used for this purpose contain a large number of items that can each be assigned to specific facets of the larger construct. The factor structure of each instrument emerges from a mixture of psychological theory and empirical research, often by doing exploratory factor analysis (EFA) using the SAS procedure PROC FACTOR. Once an initial model is established, it is important to perform confirmatory factor analysis (CFA) to confirm that the hypothesized model provides a good fit to the data. If outcome data are collected, such as grades, structural equation modeling (SEM) should also be employed to investigate how well the assessment predicts these measures |
proc calis, estimate, proc step, response variable, factor analysis, latent variable, covariance, sample, confirmatory factor analysis, residual, sample size, correlation | 9 | |
| 37 | Creating Easily Reusable and Extensible Processes: Code That Thinks for Itself | Faisal Dosani, Lisa Eckler, Marje Fecht |
It's easy to write code that answers only one need. It's more challenging and time-cons uming to develop a "hands-off" process that adapts to many needs. In the long run, time and effort is saved by building a modular process with wide applicability. This paper investigates the impl ementation of a framework to help in buildi ng efficient and reusable code. We start by looking at design considerati ons prior to the start of coding, including identifying desig n patterns and utilizing Metadata driven logic. Then we consider effect ive ways to split logical sections of code into easily reusable components. Examples will be presented including components of the planning process design framework key features of flexible code macros that enable creating hands off code with minimal intervention. A basic understanding of SAS and the SAS Macro Language is assumed throughout the paper , however the concepts may be beneficial to a wider audience | macro variable, dataset, quality assurance, proc step, macro definition, excel, macro facility, data cleaning | 17 | |
| 38 | Creating PDF Reports Using Output Delivery System | Shubha Manjunath, Shirish Nalavade |
Output Delivery System (ODS) in V9.2 provides new and enhanced capabilities to programmers for reporting and displaying clinical trials results with numerous options that provide greater control of formatting and layout of the report. The purpose of this paper is to list and demonstrate variety of ODS parameters that help control display of statistical reports while creating PDF r eports. Fundamental ODS procedures included in the article but not limited to are, controlling th e structure of the report (eg. ODS DOCUMENT), sending reports directly to a printer (eg. ODS PDF), inserti ng text into an ODS output (ODS TEXT =), setting valid values for page orientation (eg. PAGESTYL) and controlling the level of expansion of PDF table of Contents (eg. PDFTOC). These functionalities are illustrated using SAS9.2 version on a Windows operating system |
ods pdf, output delivery system, proc step | 5 | |
| 39 | Creating Stylish Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | This paper explains how to use Base SAS 9 software to create multi-sheet EXCEL workbooks (f or EXCEL versions 2002 and later). You learn step-by-step techniques for quickly and easily creating attractive multi-s heet EXCEL workbooks that contain your SAS output using the Ex celXP ODS tagset and ODS styles. The techniques th at are presented in this paper can be used regardless of t he platform on which SAS software is installed. Yo u can even use them on a mainframe! Creating and delivering y our workbooks on-demand and in real time using SAS server technology is discussed. Although the title is sim ilar to previous papers by this author, this paper contains new and revised material not previously presented |
excel, xls, output delivery system, sas output, proc report, proc template, sas base, proc step, by group processing, ods xml, sample, proc format, dataset | 22 | |
| 40 | Don't Lose Your Data! Tracking and Reporting on Dropped Records | Quentin McMullen, Joshua Black |
Tracking record counts throughout a code stream is a critical component of quality control. Data are valuable. It is often expensive to collect data, and it is always expensive to lose data. Despite this, a stream of SAS code may drop records at several points of processing, for a variety of reasons. For example, a program to create an analytic data set for a clinical trial might start with a data set consisting of all participants who enrolled in the trial, and then drop records for ineligible participants, participants who did not receive the protocol-determined therapy, and par- ticipants without follow-up data. SAS provides a range of tools that may result in dropped records (WHERE state- ment, subsetting IF statement, DELETE statement, PROC SORT NODUPKEY, etc) |
record count, proc step, proc sort, output, quality control, subsetting if, proc sql, macro definition, proc freq | 9 | |
| 41 | Drug Surveillance and Effectiveness Epidemiology Research - Questions to Ask Your Epidemiologist | Roberta J. Glass | As a SAS analyst starting work on a claims-based drug safety or effectiveness study, one of the most valuable skills you can have is the ability to ask the right questions. Many other types of research have clear start and end dates, and easily defined exposures and outcomes, the use of administrative claims data adds an extra layer of complexity. Drug surveillance analytics of administrative data requires an understanding of epidemiology concepts, the characteristics of the drugs under study, and the nature of the medical outcomes that are expected -especially how these concepts can be operationalized using administrative data | person-time, insurance claims | 5 | |
| 42 | Dynamically Evolving Systems: Segmentation and Cluster Analysis Using Time | David J. Corliss | Cluster analysis, often referred to as Segmentation in business contexts, is used to id entify and describe subgroups of individuals with common characteristics that distinguish them from the rest the populat ion. While segments are often identified using static characteristics, evolving systems may be better described by how things change ove r time. A medical patient may be classified by the amount of time since an important event such as a diagnosis, economic activity may be segmented by stages in an economic cycle and neighborhoods grouped using by stages in generational evolution. An important success of this technique is in astrostatistics, where a supernova is classified by how the amount of light it produces changes over time. Examples are given in biostatistics, meteorology and econometrics as well as astrostatistics to demonstrate how t ime intervals may be used to identify population subgroups in segmentation and cluster analysis | time series analysis, cluster analysis, proc fastclus, proc step, proc standard | 11 | |
| 43 | Easy DOS It. | Asaf Hanish | Did you know that you can execute MS DOS commands through SAS? Old news? Not that interesting? This paper will make you reconsider. When DOS commands are combined with the power of SAS Macro, some really interesting and useful utilities are possible. This paper will give an introduction to the SAS syntax for utilizing MS DOS commands, briefly covering the pipe device within a FILENAME statement as well as the Call System routine. As an example, a FILENAME statement is combined with an infile DATA STEP to create a SAS data set that contains one row for every file found within a Windows directory. This data set provides the inspiration for solving a series of data management problems such as locating disused subdirectories to archive, and moving old programs to a separate location while preserving the file structure. These solutions are achieved with a little conditional logic amplified by the power of SAS Macro |
dataset, filename statement, macro variable, macro loop, macro definition, macro function | 7 | |
| 44 | Effectively Implementing SAS Grid Architectures in Conlunction with Non-grid Aware Processes | Bill Nasuti | SAS Grid Computing provides enterprise class governance which allows many SAS applications to run within a centrally managed grid infrastructure. Employing SAS Grid Manager affords enterprise organizations the opportunity to utilize their underlying hardware resources more efficiently. In practice, there are many situations where grid nodes are running non-grid aware processes in conjunction with grid aware processes. In order to alleviate this inefficiency, SAS Grid Manager provides a plethora of controls to ensure that resources are governed in an enterprise environment. This process is very straightforward when the governing grid environments are comprised of exclusive grid aware processes. The utilization of non-grid aware processes introduces unique challenges. This paper presents and discusses a viable architecture to improve on grid environments that consist of both grid aware and non-grid aware processes | sas grid, grid computing | 9 | |
| 45 | Feature Selection and Dimension Reduction Techniques in SAS | Sassoon Kosian, Varun Aggarwal |
In the field of predictive modeling, variable selection methods can significantly drive the final outcome. While the foc us of the analysis may generally be to get the most accurate predictions, it is incomplete without key driver analysis. These drivers could be demographics, geography, credit worthiness, payments history, usage, pricing, and potentially a host of many othe r key characteristics. Due to a large number of dimensions, many features of these broad categories are bound to remain untested. A million dollar question is how to get to a subset of effects th at must definitely be tested. In this paper, we highlight what we have found to be the most effective ways of feature selection along with illustrative applications and best practices on implementation in SAS . These | proc step, correlation, feature selection, response variable, sample, multicollinearity, feature importance, proc hpsplit, dimensionality reduction, proc princomp, proc varclus, proc corr, proc reg, predictor variable | 6 | |
| 46 | From Shapefiles to Maps Via PROC MAPIMPORT and PROC GMAP | Michael S. Zdeb | SAS/GRAPH comes with a large library of map data sets that allows a user to create maps at various levels of world geography (the world, continents, countries, country subdivisions). When creating maps of the United States, the lowest level of geography provided in the SAS map data set library is county. If one wants to create maps at a lower level, for example census tract or zip code, one must look elsewhere for mapping files. The search for mapping files for use with SAS/GRAPH has been made easier with the availability of PROC MAPIMPORT, a procedure that allows a user to convert shapefiles (a commonly available type of file used to create maps) into map data sets that can be used with PROC GMAP. This paper shows how to use PROC MAPIMPORT to convert shapefiles into SAS/GRAPH map data sets using some of the 2010 TIGER shapefiles that were released as part of the decennial congressional redistricting process |
proc step, proc gmap, character variable | 13 | |
| 47 | From Stocks to Flows: Using SAS HASH objects for FIFO, LIFO, and other FO's | Mark Keintz | Tracking gains or losses from the purchase and sale of diverse equity holdings depends in part on whether stocks sold are assumed to be from earliest lots acquired (a FIFO list) or the latest lots acquired (LIFO). Other inventory tracking applications have a similar need for application of either FIFO or LIFO rules. This presentation shows how a collection of simple ordered hash objects, in combination with a hash-of-hashes is a made-to-order technique for easy data-step implementation of FIFO, LIFO, and other less-likely rules (e.g. HIFO and | hash table, hash iterator, hash of hashes | 10 | |
| 48 | Generating Define.xml | Sandeep Kottam, Uma Sarath Annapareddy, Sree Lakshmi Kalyani Tripuraneni |
CDISC's requirement of an XML-based metadata document introduces new challenges to Programmers in the pharmaceutical Industry.SAS is used to generate it and this task most likely need more of planning what other Metadata files needs to be required in order to generate define.xml. This paper addresses these challenges. After a brief discussion of XML basics, we will study carefully the structure of Define.xml. This paper will discuss how the required metadata files are created and after these files in place, we'll see how the SAS can be used as powerful tool for generating the final document with the familiar procedures and statements | excel, data dictionary, adverse events, controlled terminology, medical history, cdisc | 20 | |
| 49 | Generation Why: How Generation Data Sets Can Help | Lisa Eckler | Generation data sets are a powerful tool available in SAS to manage versions of data. This paper will address what generation data sets are, how they are defined and referred to, and why you should use them to improve programming productivity and achieve simple and elegant management of historical versions of data in SAS. 1 SAS Generation Data Sets behave much like Generation Data Groups (GDGs) in the mainframe MVS operating environment. The SAS implementation of this functionality offers more flexibility as to when the group is defined, but otherwise may seem quite familiar to those who have worked in MVS. 2 Since version numbers are only 3 digits, the absolute version number is represented modulus 1000. See Figure 1 on the following page for an illustration. Coders' CornerNESUG 2011 | macro variable, proc step | 7 | |
| 50 | Geometric Statistics in PK Analysis - Programmeres Perspective | Niraj J. Pandya, Smitha Mullapudi |
For any SAS statistical programmer working on PK analysis, it is an obvious question: "Why geometric statistics are required and why arithmetic statistics alone are not enough?" The answer to this question lies in the fact that most drug concentration and pharmacokinetic parameters data follow a log-normal distribution. In such case, geometric statistics are more appropriate summary descriptors. At present, none of the SAS/STAT procedures directly compute geometric statistics and so it is of greater interest to understand the concept and implement it in actual programming. This article would explain more on log- normal distribution and programming approach to calculate geo-stats using the example of PK parameters data |
geomean, numeric functions, standard deviation, normal distribution, cv, lognormal distribution, key, pk parameter | 4 | |
| 51 | Get Started Writing SAS Macros | Luisa M. Hartman, Jane X. Liao |
The SAS Macro Facility is a tool which lends flexibility to your SAS code and promotes easier maintenance. It is composed of macro variables and macro statements. When incorporated into your SAS code, macro variables and macros facilitate text substitution, reusability, customization, and standardization. This paper will provide basic examples on creating and using macro variables and macros. It presents the why, when and how one should use macros demonstrating macro code versus the same in open SAS code | macro variable, call symput, macro put, proc sql, proc step, sas log, macro parameter, do loop, macro facility, macro call, macro definition, by group processing, &variable, select | 12 | |
| 52 | Glorified PROC CONTENTS for Secondary Source Data | Bruce Thomas | Researchers often want to know as much about their data as early as possible. This is particularly important in studies which use administrative, claims and utilization data from multiple sources. In these studies, data usually need to be combined and judgments made about data quality and relevance. SAS Users are typically interested in data dictionaries, but most stop at PROC CONTENTS printed in monospace font. Borrowing from the 'glorified PROC CONTENTS' approach employed in drug and device regulatory submissions, this paper describes a method that can be used to help document the contents of one or more datasets or format catalogs; in addition, it provides an approach to creating desktop guides in PDF format that describe the distribution of the variables in those datasets |
proc contents, proc step, ods pdf, data dictionary, interval variable, proc freq, proc report, dataset, clinical trial, variable list, proc means, proc sql | 15 | |
| 53 | Hands Free: Automating Variable Name Re-Naming Prior to Export | John J. Cohen | Often production datasets come to us with data in the form of rolling 52 weeks, 12 or 24 months, or the like. For ease of use, th e variable names may be generic (something like VAR01, VAR02, etc., through VAR52 or VAR01 through VAR12), with the actual dates corresponding to each column being maintained in some other fashion - often in the variable labels, a dataset label, or some ot her construct. Not having to re -write your program each week or month to properly use these data is a huge benefit. Until, however, you may need to capture the date information to properly document - in the variable names (so far VAR01, VAR02, etc.) - prior to, say, exporting to MS/EXCEL (where the new column names may instead need to be JAN2011, FEB2011, etc.). If the task of creating the correct corresponding variable names/column names each week or month were a manual one, the toll on efficiency and accuracy could be substantial |
dataset, label statement, proc contents, excel, proc step | 5 | |
| 54 | Hash + Point = Key | Paul M. Dorfman, Lessia S. Shajenko |
One of the most trivial applications of the SAS hash object (as well as one of its most often cited claims to fame) is its application as a fast-searched look-up table for joining two SAS files. Typically, a smaller "look-up" file, complete with its keys and satellites, is loaded into a memory-resident hash table, and then a larger "driver" file is read sequentially. For each record read from the driver, the hash table is searched, and some action is taken depending on whether or not the key is found in the look-up table. This scheme typically yields join times well ahead of other methods, such as sort and merge, SQL join, SAS index or SAS format searches. However, the inherent limitation of the hash object lies in its RAM- resident nature, especially when the non-key hash variables are numerous and/or long | hash table, set statement, by group processing, point= option, conditional do loop, hash iterator, proc sql | 13 | |
| 55 | How to Color Your Report? | Xuefeng Yu | A colorful report with highlighted background or bright color numbers will greatly facilitate the reviewer to identify the flags, the special values, conditions, or outliers. SAS has provided various ways to make it an easy task. This article summarizes the different methods to produce a colorful report, for example, by using PROC FORMAT, PROC REPORT, or using ODS Style definitions. SAS codes and data examples and the result outputs are given to illustrate the programming ideas |
proc step, proc report, proc template, proc format, ods pdf | 8 | |
| 56 | How to Fake ArcGIS Maps in SAS | Anastasiya M. Osborne | This paper describes another successful project of automating manual tasks at the Farm Service Agency, USDA. After an urgent request, new SAS code with PROC GPROJECT, PROC GMAP, and heavy use of annotation was developed to map widely used state revenue guarantees and benchmark yields for 22 crops under the Congressionally-mandated Average Crop Revenue Election (ACRE) program. A program is administered by the Farm Service Agency, USDA. Previously, such maps were created in ArcGIS. The SAS solution enhanced the quality of the map: it showed state revenues and yields in a compact but readable way, drastically improved presentation of data in Northeast states, and eliminated repetitive task of making a PDF file out of 22 separate maps |
excel, macro variable, proc step | 18 | |
| 57 | How to Increase Sales of Orthopedic Equipment in United States: Factor and Cluster Analysis Using SAS and R | George Obsekov | cluster analysis, factor analysis, regression analysis, response variable, scatter plot, proc hpforest | 15 | ||
| 58 | How to Keep Multiple Formats in One Variable after Transpose | Mindy Wang | In clinical trials and many other research fields, PROC TRANSPOSE are used very often. When many variables with their individual formats are transposed into one varia ble, we lose the formats. We can do a series of if then statements to put the formats back in. However, when the variables involved are too many, the abo ve method can be very tedious. This paper illustrates how to extract formats from dictionary.columns or sashelp.vcolumn, and then use PUTN function to assign the formats at run time and make the task much easier. In addition, it is much easier to apply the same method to other projects without a lot of hard coding in the SAS program. Efficiency is largel y increased with this method |
excel, putn, proc step, proc sql | 9 | |
| 59 | Implementing a Customer Lifetime Value Framework in SAS | Krishna Mehta | In this paper we focus on the analytics of implementing CLTV in SAS. We describe the different analytics steps needed to implement the CLTV framework, appropriate SAS procedures and some pitfalls to avoid. We first layout the data requirements and analytics framework for putting together a CLTV measure, and then discuss the different components in greater details. Two key components of the measure are (a) an estimation of the life time of the customer and (b) their projected revenue for each of the time periods over their lifetime. These are combined to then obtain the lifetime value. For lifetime estimation, we compare the relative merits and drawbacks of using a Discrete Time Logistic Model (with PROC LOGISTIC), a Proportional Hazard Model (using PROC PHREG) and a Continuous Time Parametric Model (using PROC LIFEREG). We then present situations where one of the methods might be more appropriate |
proc step, logistic distribution, proc logistic, proc phreg, logistic regression, proc genmod, regression analysis, cross-sell, time series analysis, proc reg, hazard function | 8 | |
| 60 | Intelligent PROC SORT NODUPKEY | Andrea Wainwright-Zimmerman | Have you ever had a dataset that you were updating records in and needed to eliminate the old records and re- place them with new? PROC SORT with the NODUPKEY option will eliminate rows that duplicate your key fields, but it chooses which record to keep based on its own logic and that may not be the one you want. This paper will show how to combine a PROC SORT and a DATA STEP to get the sorted dataset with the exact records you want |
proc sort, proc step | 4 | |
| 61 | Introduction to PK/PD Data Structures and Process Optimization to Get Analysis-Ready Data | Smitha Mullapudi | The Pharmacokinetics (PK) is the study of the way body handles the drug by absorption, distribution, metabolism and excretion. The Pharmacodynamics (PD) would be the body's pharmacological response to a drug. Assess- ment of PK/PD data variability population along with safety or efficacy data in early phases of clinical trials is an important aspect of clinical data analysis. The derived PK/PD dataset for analysis may contain any PK data along with safety or efficacy data. This derived dataset could include multiple data sources along with variables calcu- lated from the input data. The final PK/PD file can be a CSV (comma separated file) or space delimited ASCII files depending on the tools used for PKPD analysis. Author will also elaborate more on the use of SAS techniques, |
clinical trial, pd | 4 | |
| 62 | Join or Merge? The Differences Between PROC SQL goin and Data Step Merge and When to Use Them. | Ted Shelly | A very common data manipulation task is to bring two or more sets of data together based on a common key. In SQL, this is known as a join. The SAS DATA STEP has the MERGE statement that permits the same thing. If you know SQL, you might never look at using MERGE. And if you know DATA STEP programming very well, you might never bother learning how to do an SQL join. But each method has its own advantages and it pays to know when it is best to use either of the two methods |
data step, proc sql, proc step, data merging | 7 | |
| 63 | Let the System Do the Work! Automate Your SAS Code Execution on UNIX and Windows Platforms | Niraj J. Pandya | Often, same SAS macros are run to produce specific SAS outputs on a regular basis and many times on a strict scheduled time in a production environment. Automating this process can save lots of time and resources. The whole process can be streamlined. This paper explains how to automate the SAS jobs which will execute the required SAS macros on a given specific time point, will also check the log for errors and warnings. If there are any errors, it will send an e-mail with log file; else if the job is successful then it will send the SAS output to the e-mail to appropriate personnel. This article explains about the automation on Microsoft Windows platform using the task scheduler as well as CRONTAB facility on UNIX platform | macro definition, macro variable | 8 | |
| 64 | Life in the FASTCLUS: A Data-Driven Approach to Classifying Time Intervals | Jedediah J. Teres | The semester is an important unit of analysis in higher education research. Student enrollment data available from the National Student Clearinghouse are comprehensive, but they contain only the starting and ending dates during which students were enrolled. It is possible to map these dates to semesters, but the range of starting dates makes it difficult to establish cutoffs that can be applied across institutions. This paper will describe a data-driven | proc fastclus, proc step, proc freq | 4 | |
| 65 | Looping Through the Unknown | Rebecca I. Piegari | macro variable, proc step, proc report, do loop, proc sql, macro put, macro definition | 4 | ||
| 66 | Matching Data Using Sounds-Like Operators and SAS Compare Functions | Amanda Roesch | Often times, SAS programmers find themselves faced with what most programmers dread the most: the tas k of matching th e unmatchable , the inconsistent text string . For instance, s ince computers don't understand that 'McHugh' and 'Mc Hugh' are most likely referring to the same name, it is necessary to go into SAS's bag of tricks and use things such as SUBSTR, COMPRESS, and TRANSWRD functions. The problem is, unless it is a relatively simple difference, a programmer usually has to know exactly what needs to be done to make the two words pair together . Take f or example, 'Sesame' and 'Sesmae'. Most likely a typo, but how ca n SAS be manipulated into matching these two together? The answer lies within sounds -like operators and compare functions | proc sql, character variable | 11 | |
| 67 | Measuring Medication Persistence Using SAS Stamina | Mark J. Mihalyo | The area is pharmacy, and being able to examine a range of time in which a person complies with their medication is critical and meaningful data. Of course, one of the advantages of SAS is how efficient it is at compiling information over multiple time periods and from multiple data sets. Merge the power of SAS's efficiency, with pharmacy data, and valuable outcomes can be produced. When the interest is medication compliance and measuring the persistence of medication use (proportion of days covered), a well structured MACRO can accomplish this effectively. Add in the featured versatility the MACRO offers, and examining multiple drug classes and different time periods becomes easy and the results insightful | %if-%then-%else, macro variable | 7 | |
| 68 | Merging SAS Programming Groups: MERGE or join? | Margaret M. Coughlin, Alfredo Rojas |
Mergers and acquisitions have become commonplace in the pharmaceutical industry. When two large companies merge, departments performing similar functions need to combine forces. Often, the details of comb ining groups are left to the management team of the departments involved. On the surface, merg ing two SAS programming groups which support clinical trials does not sound like a daunting task and could be thought of as being "one PROC away". A more in-depth analysis surfaces logistical, technica l, and process challenges with integrat ing SAS programming groups from two large companies. The complexity of integr ating what are seemingly very simila r groups requires a thoughtful and phased-in approach in order to maintain business continuity. However, in tegration provides opportunities as well as challenges. In this paper, the authors discuss practices being used to integrate two large SAS programming groups while maintaining the continuity of the business |
sas programming, clinical trial, sas programmer, proc sql | 6 | |
| 69 | Metadata: Some Fundamental Truths | Frank C. DiIorio | crf, proc contents, attrib statement, data governance, edc, macro variable, out=, excel, proc sql, data cleaning, adam dataset, sdtm domain, cdisc | 9 | ||
| 70 | Missing Categories from Categorical Summary Report? PRELOADFMT Comes to Your Rescue | Sapan M. Raval, Niraj J. Pandya |
In clinical trails data analysis and reporting, one always comes across producing categorical tables used for analysis. Provided with lots of different kind of data types such as labs, adverse events, physical examination, concomitant therapies etc and multiple categories for several categorical variables, it becomes difficult sometimes to impute 0 values for categories which are missing altogether for a particular variable. SAS provides multiple options to handle such cases and produce output with all the categories even if some don't exist in the data. This paper concentrates on different work around methods and will discuss details of implementing each technique | proc step, proc report, proc means | 6 | |
| 71 | Modern Portfolio Theory Using SAS OR | Murphy Choy | Investment approaches in financial instruments have been varied and often produce unpredictable results. Many investors in the earlier days of investment banking suffered catastrophical losses due to poor strategy and lack of understanding of the financial market. With the development of investment banking, many innovative investment strategies have been prop osed to make portfolio returns higher than the overall market. One of the most famous theories of portfolio creation and management is the modern portfolio theory proposed by Harry Markowitz. In this paper, we shall apply the theory in creating a portfolio of stocks as well as managing it | correlation, proc step, proc corr, covariance, call execute, investment banking, excel | 8 | |
| 72 | Multisheet Workbooks from SAS Data Using the ODS Excelxp Tagset or Another Way to Excel Using SAS | Cynthia A. Stetz | Most of us are engaged in providing data to information consumers at least some of the time, and by far the most often requested format is the EXCEL workbook. As the capabilities of EXCEL have expanded, so have the requests for more and more sophisticated output, and the search for ways to generate this output with the least amount of human effort as possible. Fortunately, we can rely on the SAS Institute to supply us with innovative tools to make this task easier. One of those tools that I have recently started using to great effect is the ODS ExcelXP tagset. By harnessing some of the vast capabilities available within this tagset, in concert with the judicious application of macro code and Dynamic Data Exchange (DDE), I am now able to deliver nicely formatted, multisheet native EXCEL workbooks for any number of subsets of my data as might be desired |
excel, xls, proc report, proc step | 11 | |
| 73 | My Fifteen Minutes of Format Fame | James Zeitler | It's not too hard to find end-of-day stock prices and summary measures such as open, high, low, close, and volume, but historical intraday prices are harder to come by, and similar summary measures for time periods within the trading day often require some custom programming. In this present ation I describe the how I used PROC FORMAT to generate summary measures of trading activity for fifteen -minute subintervals throughout a trading day |
proc format, proc means, proc step, put statement | 9 | |
| 74 | Net Present Value Settlement Algorithm in Collections Strategies | Zbigniew Naumowicz, Daniel Costelloe |
interest rate, credit card | 10 | ||
| 75 | No More Split Ends. Outputting Multiple CSV Files and Keeping Related Records Together | Gayle K. Springer | The EXPORT Procedure allows us to output CSV files easily. For our application, we need to limit the number of records in our output CSV files. Using FIRSTOBS= and OBS= options in PROC EXPORT, we can manipulate the number of records in each file. Additionally, when we need to keep related records together in the output CSV file, we can manipulate the data in a DATA STEP and use the WHERE statement in PROC EXPORT to ensure the number of observations in each CSV file is not larger than our requirements and related data remains in the same CSV file |
proc export, proc step, macro loop, do loop, macro variable, macro parameter, by group processing, macro definition, macro function | 7 | |
| 76 | On Deck: SAS/STAT 9.3 | Maura E. Stokes | SAS/STAT 9.3, coming soon to a site near you, delivers numerous enhancements to the statistical software. The PHREG procedure supports frailty models for incorporating random effects in Cox regression, and the MCMC procedure provides a RANDOM statement to facilitate fitting Bayesian models with random effects. The NLIN procedure has been updated, and the MI procedure offers additional flexibility by providing a fully conditional specification method. The new SURVEYPHREG and HPMIXED procedures are also outfitted with additional capabilities. This talk reviews the highlights of SAS/STAT 9.22 and then describes important SAS/STAT 9.3 enhancements with practical illustrations, mainly from the SAS/STAT 9.3 documentation |
poisson distribution, likelihood function, proc mixed, sample, prior probability, maximum likelihood estimation, poisson regression, proc step, regression analysis, estimate, proc phreg, response variable, zero-inflated poisson, confidence interval, logistic distribution, proc freq, binomial distribution, numeric functions, proc nlin, proc genmod | 20 | |
| 77 | Periodicity Via the SAS Iterative Loop | Joel P. McMullin | This paper describes how the SAS iterative loop can calculate time points and generate intervals. An analyst can use the resulting time segments as parameters for obtaining or presenting data. Suppose a research project has the following requirement: find finger stick blood glucose (FSBG) and/or lab-obtained blood glucose (LOBG) values for the first 72 hours from admission and record the last value within each four-hour time segment for each patient. Topic Covered: the SAS iterative loop. Audience: beginning to intermediate users. Keywords: Do Iterate, loop | 6 | ||
| 78 | Personalizing Mailings and Driving Sales Using SAS/GRAPH | James P. Shields | Personalizing marketing messages to the individual customer is an effective method for increasing response and driving sales. This paper will walk through using SAS/GRAPH to create personalized maps showing the incidences of Lyme in relation to where a veterinary clinic is located. The presentation will cover all the steps that were involved in building an actual direct marketing promotion. Included will be the use of PROC GMAP, Annotate, a touch of trig, changing graph resolution, and formatting the output to better suit the printers needs |
proc step, macro variable, proc gmap, missing value | 10 | |
| 79 | Pick Your Variables Out | Chen Cao, Xi Chen |
How could one efficiently subset a large dataset with respect to the variables whose names are 10 digits long and have "V" in the last second position? Here we show a general method when the names of variables of interest share a particular pattern. It consists of two major steps: 1) PROC CONTENTS to store all the variable names as observations of one column in another dataset; 2) PROC SQL to select the names of variables of interest into a macro variable, which serves in a KEEP= option later. This method not only reduces typing or copy-pasting load, but also provides programmers great flexibility |
proc step, proc contents | 5 | |
| 80 | Planting Your Rows: Using SAS Formats to Make the Generation of Zero-Filled Rows in Tables Less Thorny | Kathy Hardis Fraeman | Often tables or summary reports need to be produced with SAS where all possible values of one or more variables need to be included as rows in a table. However, the actual data to be summarized in a table might include variables that don't have all of the variables' possible values, even though the table needs a corresponding zero-filled row for that variable value. These zero-filled table rows for non-existent variable values will be missing from the table unless additional programming is done. One programming method to make sure all rows are included would be to hard code all possible values of a variable, although this method could be tedious if a large number of variables and/or values are involved. A more dynamic method of determining all possible values of a variable is to attach a SAS format to each table variable, where the format contains all of the variable's possible values | proc step, proc format, proc sql, dictionary tables, format statement, dataset, macro function, macro put, macro variable, sas programming, sample, macro definition | 11 | |
| 81 | PROC COMPARE - Worth Another Look! | Christianna S. Williams | PROC COMPARE is one of those workhorse procedures in the Base SAS clos et that deserves to be dusted off, tuned up and pressed into service again! With well- chosen PROC COMPARE options and statements, you can compare pairs of SAS datasets at multiple levels without the need for DATA STEP MERGEs or SQL JOINs. Through a series of examples and hands-on exercises this paper wi ll show you how to identify differences and similarities across SAS data sets with respect to: dat a set attributes; variable existence an d attributes; existence of matching observations; and variable values. This handy PROC can even be used to compare values of one variable to another within a dataset. Examples will also explore several available reporting options, demonstrating how they can be customized to project needs |
proc compare, proc step, missing value, character variable, dataset, numeric variable, sas base | 26 | |
| 82 | PROC FORMAT - Not Just Another Pretty Face | Lois Levin | PROC FORMAT, because of its name, is most often used to change the appearance of data for presentation. But PROC FORMAT can be used for much more than the cosmetic transformation of data. It can be a tool for redefining data, recoding data, transforming data for tabulation and reporting, subsetting large data files and more. This paper will present a few applications of PROC FORMAT that go beyond the basic display of data and show that PROC FORMAT has real character that goes deeper than just its pretty face |
proc format, proc step, proc freq, macro variable, if-then-else, lookup, merge statement, put statement, cpu time, proc sql | 13 | |
| 83 | Proc Mixed - Right Options to Get the Right Output | Shilpa C. Edupganti, Sheetal Nisal |
The MIXED Procedure fits a variety of mixed linear models to data that enables us to use these fitted models to make statistical inferences about the data. Once a model has been fit to the data, we can use it to make statistical inferences via both the fixed -effects and co variance parameters. PROC MIXED computes several different statistics suitable for generating hypothes is tests and confidence intervals and several other statistical parameters. The validity of these statistics depends upon the mean and variance- covariance model we select by the right ordering of the data and picking the right estimate difference, so it is important to choose the right model . We use PROC MIXED for statistical analyses very frequently and might have to do some trial and errors to check which model works best for us |
proc mixed, proc step, feature selection, data science, interaction effect, covariance, clinical data, out= | 10 | |
| 84 | PROC PRESENT: Write Your Presentation in SAS in as Few as Five Easy Steps | Louise S. Hadden | There is no reason to wait for SAS Version 9.x and ODS PPT to create your presentations in SAS. Harness the power of ODS PDF, PROC TEMPLATE and PROC REPORT (as well as any graphic producing procedure) in SAS 9.2 to create eye-popping and easy presentations, without ever leaving your SAS program! The presentation of the paper will be written in SAS |
proc step, proc template | 6 | |
| 85 | PROC PRINT - The Granddaddy of All Procedures, Enhanced and Still Going Strong | David W. Franklin | The PRINT procedure, or PROC PRINT, has been around since SAS first began and is considered one of the granddaddy procedures. Although this procedure has been replaced in part by the REPORT procedure, there is still a lot you can do with it. This paper looks at first a simple dump of data, then dresses it up with the use of statements like the BY and ID statements to publication ready output. Next, output is cranked up a notch to demonstrate how PROC PRINT enhancements can be used to produce HTML (with graphics and links), RTF and PDF (with bookmarks). Along the way the paper will also touch on techniques for post processing to make your output more alive |
proc print, proc step, ods pdf, ods html, proc template, by group processing, proc report, file statement | 12 | |
| 86 | PROC REPORT: Various Reporting Layouts in Clinical Study Reports and Advance Techniques | Santosh Bari | Various clinical study report layouts can be produced using categorical statistics, and descriptive statistics with or without inferential statistics using PROC REPORT. Viewing the statistical summary reports with observed, change from baseline, percent change from baseline etc.in different reporting layouts produced using PROC REPORT will give a more detailed understanding of the concept and techniques of clinical reporting. To produce various table layouts useful for clinical study reports using PROC REPORTone can use advanced features such as COMPUTE, BREAK, DEFINE, LINE statements and various attributes, and other options in |
proc report, proc step, change from baseline, csr, percent change from baseline, clinical trial, class variable, standard deviation, proc means | 6 | |
| 87 | PROC SQL for DATA Step Die-Hards | Christianna S. Williams | PROC SQL can be a bit daunting for the 'old dogs' who have learned SAS data management techniques using exclusively the DATA STEP. However, when it comes to data manipulation, SAS often provides more than one method to achieve the same result, and SQL provides another valuable tool to have in one's repertoire. Further, Structured Query Langua ge is implemented in many widely used re lational database systems with which SAS may interface, so it is a worthwhile skill to have from that perspective as well. This paper will present a series of in creasingly complex examples and hands- on exercises. In each case I will demonstrate the DATA STEP method with which users are probably already famili ar, followed by SQL code that will accomplish the same data manipulation |
proc sql, proc step, create table, order by, group by, inner join, where statement, subsetting if, filtering, set statement, standard deviation, proc means, by group processing, data governance, outlier | 22 | |
| 88 | Product Repository: Oblectives and Utilization - A Case Study | Amit Bhanose, Smitha Mullapudi |
Building a repository of a post -marketed product is very efficient in answering queries from various regulatory agencies as well as summarizing data for pooled analysis, manuscripts, abstracts and publications. A dataset can be built with various compiled indicators e.g. demographic information, dosing exposure, study type, study phase, etc, from a numbe r of trials of the same drug. Depending on the therapeutic area of the product, it can as well contain some key information from adverse events, medical history, concomitant medication, vital signs, ECG and primary diagnosis. This dataset could be used for Integrated Summary of Safety. There are challenges in developing such a dataset because of complex trial designs, data collected in different standards as well as version of coding dictionary used. This manuscript will elaborate more on the programming ch allenges that a programmer could face while creating such dataset and best possible solutions to overcome them | adam dataset, adverse events, clinical trial, medical history, vital signs, concomitant medications | 5 | |
| 89 | Programming Techniques for Optimizing SAS Throughput | Steven M. Ruegsegger | What is the primary bottleneck for SAS when it analyzes large datasets? What can a programmer do to mitigate that bottleneck and optimize their SAS code for throughput? This paper will discuss several programming techniques which will increase the throughput of SAS analysis, particularly when analyzing large datasets. When these techniques were implemented in one example program, the real-time throughput improved 5x | proc step, by group processing, proc sort, sas programmer, proc append, proc sql, subsetting if, where statement | 11 | |
| 90 | Programming the Provider Previews: Extreme SAS Reporting | Louise S. Hadden | Each month, we produce over 15,000 data-driven, 3 page reports for nursing homes previewing their 5-star ratings on various measures. These reports are produced entirely in SAS, including a macro toggle for test or production mode and zipping all 15,000 PDF reports into a single multi-gigabyte zip file. The elements of the program include macro language, DATA STEP programming, and PROC REPORT, utilizing ODS PDF. Each PDF is named so that it will seamlessly upload into specific electronic mailboxes for each nursing home facility. This paper will detail the production process, and now that ODS LAYOUT is production in SAS 9.3, briefly discuss the possibility of using ODS LAYOUT to facilitate the process |
macro variable, output delivery system, proc step, proc report, ods pdf, macro definition, proc sql | 10 | |
| 91 | Project Management: Avoiding Peter Principle Promotions | Gary M. McQuown | 'The Peter Principle states that "in a hierarchy every employee tends to rise to his level of incompetence", meaning that employees tend to be promoted until they reach a position at which they cannot work competently'. There may be no better example than when a SAS programmer is promoted to Project Manager. However the Peter Principal can be postponed by learning or improving certain skills or abilities. In order to perform well, a project manager must master the tools of their trade and communicate effectively. But SAS programmers often operate more or less informally between the IT department and business users with little exposure to industry standards like CMMI, WBS, PMP, QAP and EVM and few opportunities to orchestrate formal meetings. This presentation will touch on those and other tools, best practices, suggested resources and lessons learned. While it is designed for those approaching or new to project management, the information should be useful to anyone within the industry | sas programmer, excel | 6 | |
| 92 | Promoting Data-Driven Techniques | Haibin Shu | Data-driven programming is a general programming methodology in which data specific information is first detected and subsequently utilized to automatically control the flow of the program or even the program logic. Data-driven approaches offer at least the following advantages to SAS community: 1) Increased general usability as a result of independence from data structure 2) Dynamic output from different data contents 3) Fewer parameters 4) Shorter specification document We'll further talk about adopting data-driven technique through comparing with other alternate approaches based on case studies | proc freq, clinical data | 3 | |
| 93 | Put a Little Zip in Your SAS Program | Louise S. Hadden | SAS programmers are frequently called upon to perform repetitive processes. To deal with repetitive processing the SAS macro is indispensable. If a process calls for utilizing software (for example WinZip) outside of SAS, it may be hard (but not impossible!) to figure out how to utilize SAS macros. This paper presents a solution to passing SAS macro code through to an external software call by demonstrating how to use macro variables in WINZIP Command Line Interface (CLI) calls within a SAS program. A bonus is the ability to generate a listing of the resulting zip file and output it to an external file within the SAS program, so that processing done in batch can be easily checked. This example is run on a Windows x64 server, but the process can be used on other platforms | macro variable, macro definition | 6 | |
| 94 | Quantile Regression with PROC QUANTREG | Peter L. Flom | In ordinary least squares (OLS) regression, we model the conditional mean of the response or dependent variable as a function of one or more independent variables. But, just as the mean is not a full description of a distribution, so modeling the mean is not a full description of a relationship between dependent and independent variables; it may not even be an adequate one. I show how PROC QUANTREG can be used to perform quantile regression, which models the conditional quantiles, rather than the mean Keywords: quantile regression quantreg |
regression analysis, proc quantreg, proc step | 9 | |
| 95 | Quick and Dirty Formatted Excel Workbooks Without DDE or ODS | Andrea Wainwright-Zimmerman | There is a simple trick using the X command in SAS that allows you to write out your SAS data to an already formatted EXCEL workbook with graphs and/or pivot tables already built. This paper will describe how to accom- plish this, as well as the limitations of this method |
proc export, excel, proc step, name range list | 9 | |
| 96 | Reading Multiple Sheets from Excel Using SAS | Sandeep Kottam, Sree Lakshmi Kalyani Tripuraneni |
When importing data from Microsoft EXCEL into SAS you can use the IMPORT Wizard, PROC IMPORT, ODBC, PROC DBLOAD, PROC ACCESS, - DDE (Dynamic Data Exchange). When multiple worksheets need to be imported, it adds more complexity. We have to specify the different sheet names by hard coding, so that the sheet names are visible to the SAS system. In most of the multi-sheet situations, the number of worksheets, sheet names happens to be different, and sometimes the column names in sheets are too messy to be used. This paper describes how to read in multiple sheets from a work book, append the datasets created by importing sheets. This paper shows how it can be done using SAS 9.1 and SAS 9.2 (different codes) |
excel, proc step, libname engine, macro definition | 5 | |
| 97 | Ready to Become Really Productive Using PROC SQL? | Sunil Kumar Gupta | Using PROC SQL, can you identify at least four ways to: select and create variables, create macro variables, create or modify table structure, and change table content? Learn how to apply multiple PROC SQL programming options through task -based examples. This hands -on workshop reviews topics in table access, retrieval, structure and content, as well as creating macro variables. References are provided for key PROC SQL books, relevant webinars, podcasts as well as key SAS technical papers |
proc sql, macro variable, proc step, order by | 19 | |
| 98 | Repeating Statistics Tables - Building A Macro that Dynamically Organizes and Formats | Wayne (Weizhen) Zhong | When producing a statistics table where one or a set of descriptive statistics repeat across rows and columns on a page, much time and code is spent organizing results from a PROC STEP into the desired presentation order and format. A macro is typically not considered because differences such as the number of columns, one or many class variables, and subtotal columns and rows can make these tables look very different. Nonetheless, an easy to use and capable macro that produces such layouts saves valuable time and effort. This paper summarizes the construction and use of a macro that requires minimum user input yet produces full feature tables. Examples include summary statistics (N, Mean, SD, etc.) and frequency tables such as lab, change from baseline, shift, adverse event, and tables that need dummy rows |
macro variable, change from baseline, class variable, proc step, in=, macro call, proc freq, proc means, adverse events | 6 | |
| 99 | Replaying SAS Output with the Document Procedure | Michael F. Tuchman | ODS Documents are collections of SAS output in a pre-formatted state. This output is organized in a directory struc- ture for easy navigation. This directory structure is collectively called "The Document", which is also an ODS Destina- tion. This paper will outline the role that the DOCUMENT Procedure plays in the Output Delivery System, then go on to show how to add output to the document, replay that output in whole or in part, without re-running the original analys- is. The presentation will close with an example of how to modify a SAS Template to modify the appearance of the ori- ginal SAS output, without changing the original analysis. The paper and talk are suitable for intermediate SAS users who have had some acquaintance with the Output Deliv- ery System and the concept of an ODS Destination. However, all terms will be defined as needed |
proc sgplot, proc univariate, where statement, file statement, sas output, histogram | 11 | |
| 100 | SAS Bulk Loader of RDBMS Data | Vlad Svirsky | 12 | |||
| 101 | SAS DATA Step - Compile, Execution, and the Program Data Vector | Dalia C. Kahane | The SAS DATA STEP is one of the primary methods for creating SAS data sets. To be a good SAS programmer it is essential that you understand the intricacies of the DATA STEP because some tasks related to data manipulation and data set creation may only be done via the DATA STEP (they cannot be done or are too complex to be done via SAS procedures.) It is especially important to learn the rules governing the DATA STEP Compile phase and Execution phase; as well as to understand the Program Data Vector (PDV), which spans across both phases and which determines what information is held in storage and how it changes within the DATA STEP |
execution phase, dataset, automatic variable | 10 | |
| 102 | SAS DATA Step Merge - A Powerful Tool | Dalia C. Kahane | Through the DATA STEP Merge, SAS offers you a method by which you may join two or more datasets and output a combined product. This is a truly powerful tool. If you follow some important basic rules you will find that you may accomplish many tasks, such as: adding summary national data to individual educational data to compare individual performances to national averages, adding sales to customer data, etc. The DATA STEP Merge is similar, but not identical , to a Join operation in PROC SQL. The advantages of mastering the Merge is that you are totally in charge and that y ou may see explicitly what happens behind the scenes. As a matter of fact, you may use the DATA STEP Merge to test if results achieved by other methods are accurate. Like all powerful tools, you need to know how to use it; how to take advantage of the power without making mistakes. This paper explores the strengths inherent in the Merge and gives you suggestions on how to avoid possible pitfalls |
by group processing, merge statement, pdv, proc step, proc sort, proc sql, error message | 13 | |
| 103 | SAS Does the Dirty Work, But How Do I Make It Look Pretty? | Sarah Bobiak | This paper describes how to incorporate elements from PROC TABULATE with ODS style statements to create a customized table in Microsoft word. Starting with a brief introduction to the basic code to develop a table using PROC TABULATE, detailed instructions will be provided to walk through the process of generating and enhancing output in a rich text file using ODS styles. A brief discussion of PROC TABULATE will be followed by a more detailed description of ODS style options in each of the dimension expressions available in PROC TABULATE in order to customize the look of the table in Microsoft word |
proc tabulate, proc step, missing value, class variable, txt, interval variable, output delivery system | 12 | |
| 104 | SAS Macro for Nonparametric Residual Bootstrap Multilevel Modeling | Jichuan Wang, Peichang Shi, Avital Cnaan |
In application of multilevel models (MLM) researchers often encounter some challenging issues with their data; e.g., the number of higher level units (e.g., the second level units) is small, and or the outcome measure is not normally distributed. These problems can be addressed by bootstrap multilevel modeling (Carpenter, Goldstein, & Rasbash, 2003; Maas & Hox, 2004; Meijer, Van der Leeden, & Busing, 1995). The authors of the present study have developed a SAS macro RBMLM for nonparametric residual bootstrap multilevel modeling. This study demonstrates how to apply RBMLM | bootstrap, sample, macro definition, proc mixed, estimate, covariance, proc calis, response variable | 6 | |
| 105 | SAS Procedures as UNIX Commands | Sriharsha Rachabattula | UNIX is one of the most widely used operating system in pharmaceutical industry, as it is renowned for being the most reliable, secure system. With SAS being GUI and UNIX being CUI, doing a quick check on the contents of a dataset or simple stats like frequencies, means, medians etc, is tedious. A SAS code file has to be created and executed in UNIX to check the .LST file generated by SAS for the results. A simple solution for this would be executing SAS procedures like PROC CONTENTS, PROC FREQ or PROC MEANS right at the UNIX command prompt and displaying the results on your UNIX screen. This paper explains and gives you the code to create and use SAS Procedures as UNIX commands and get the results on your UNIX screen, without creating any permanent SAS files. |
dataset, proc step, proc freq | 7 | |
| 106 | SAS Style Templates: Always in Fashion | Cynthia L. Zender | The syntax for style templates changed in SAS 9.2 and became much easier to use. With the new CLASS statement, there is no need to debate the use of the STYLE statement versus the now defunct REPLACE statement. Yes, the REPLACE statement has gone away, and now we have the CLASS statement. In addition, you can import a CSS file into a SAS style template. All of these exciting new changes add up to stylish and fashionable output using ODS style templates. This paper provides an introduction into the use of style templates in SAS 9.2. Methods of determining the correct style elements will be shown along with several concrete examples of making style template changes. The use of the IMPORT statement will also be demonstrated. In addition to these topics, a job aid will be provided that outlines the most commonly used style elements and their attributes |
proc step, output delivery system, proc freq, proc report, title statement, ods pdf, proc template, ods html, options statement | 22 | |
| 107 | Search Across Format Libraries in FMTSEARCH Option | Ram Gudavalli | Often times, programmers want to, Search for a particular format that the program uses (Primary Objective) Look for existence of the format in all possible format catalogs * List all available formats in a particular catalog With the increasing standardization and association of formats into multiple format catalogs , it becomes quite difficult to search for a particular format across all the format librari es. In this paper, we review an approach of developing a company level macro for implementing the above tasks | char., macro variable | 3 | |
| 108 | Selecting All Observations When Any Observation Is of Interest | Christopher J. Bost | A data set might contain multiple observations per person. You might want to keep all observations for a person if at least one observation for that person meets certain criteria. This paper shows how to use PROC SQL to select all observations when any observation is of interest. The first method uses a subquery; the second method uses the GROUP BY and HAVING clauses. The SQL techniques are compared and contrasted with a traditional DATA STEP match-merge |
proc sql, proc step, order by, group by, create table, dataset, proc sort, if-then-else | 6 | |
| 109 | SG Techniques: Telling the Story Even Better! | Charles D. Kincaid | The SAS Statistical Graphics (SG) procedures: SGPLOT, SGPANEL, SGSCATTER, and SGRENDER are exciting additions in 9.2 that give easy access to some of the power of the Graphics Template Language (GTL) in much the same way that macros can give a novice access to advanced Base SAS programming. As good as these procedures are in helping you tell your analytical story, and they are good, there are techniques that can add extra value to your graphs. This paper will discuss three concepts - level ordering, banking, and slicing - introduced by William S. Cleveland in his book Visualizing Data. Ordering the levels and cells in a plot can add another level of information to the plots. Banking is a technique that enhances the reader's ability to visually judge lines in the plot. Finally, slicing is a technique that allows a quantitative variable to be used to define the cells of the panel |
class variable, numeric variable, macro variable, proc step | 10 | |
| 110 | Show Me the Big Picture | Sanjaya Kumar | Can you change the color of this bar chart? Ca n you make it a 3D graph? Can you make a graph of only 5 observations? Can you put the percent inside the pie? These are some of the very common questions we all hear everyday from our supervisor and we make a new graph or chart as requested. This presentation will show how SAS can help to present complex data dynamically. Output Delivery System (ODS) is a helpful, easy to use tool in SAS that can produce colorful and interactive graphs, reports and maps. ODS in tegrates the various new Java and ActiveX methods that give the user control over the style of output. This paper uses ambient air pollution data to compare simple SAS output with ODS output and develop complex HTML output. ODS output is user-friendl y, interactive and allows for creativity and innovation in the information display. This paper is intended fo r SAS users who have basic SAS knowledge and want to enhance their SAS output using the ODS |
ods html, proc report, sas output, proc step | 11 | |
| 111 | SQL Pass-Through and the ODBC Interface | Jessica R. Hampton | Does SAS implicit SQL pass-through sometimes fail to meet your needs? Do you sometimes need to communi- cate directly with your Oracle or DB2 database in that database's native language? Explicit SQL pass-through might be your solution. The author briefly introduces syntax for explicit SQL pass-through queries before showing examples of specific situations when explicit pass-through queries solve problems when extracting data. The author discusses the relationship between processing location and processing speed. She also gives specific examples of how differ- ences between Oracle, DB2, and SAS sometimes make it necessary to do the initial extraction or transformation of data via pass-through. The examples used to illustrate the differences between the RDBMS and SAS include numeric precision and naming conventions. A brief discussion of differences in SQL dialects and functions be- tween systems is also included | proc sql, sql pass-through, libname statement, proc step, create table, sql server, odbc connection, error message, implicit sql pass-through, relational database, sas function, sas programmer, macro variable | 8 | |
| 112 | Statistical Approach to Biosurveillance in Crisis: What is Next? | Ernest S. Shtatland, Timur Shtatland |
Motivated by the threat of bioterrorism, biosurveillance / syndromic surveillance systems are now in crisis: with the original purpose of early detection, and more than 10 years in existence, no health department has reported using them for this purpose. This has led to a shift away from only early detection of bioterrorist attacks. The goal has been expanded in two directions: firstly, to include both early event detection and situational awareness, so that the focus is not simply on detection, but also on timely response and consequence management; and secondly, to switch the emphasis from bioterrorism only to detecting and responding to natural disease outbreaks such as seasonal and especially pandemic flu. Even with this expansion, early detection capacity is problematic. The reason is uncontrolled alert rates: there is an alarm nearly every day and most health monitors learned to ignore alarms. It results in distrust in statistical methods and in biosurveillance itself | confidence interval, sample, hypothesis testing, regression analysis, normal distribution, significance level, deterministic model, proc model, proc step, correlation | 14 | |
| 113 | Survival Analysis: K-M Plot with Confidence Band | Santosh Bari, Himanshu Patel |
K-M plot also known as Survival plot is widely used to ols to perform Survival analysis in cl inical trials. They can be generated directly using SAS/GRAPH functionality or using SAS Graphics procedure such as PROC GPLOT. The plot can be enhanced using available functionality in SAS. This paper will show how to customize K-M plot by using existing SAS options as well as by modifying ODS template. We will show step-by-step how to modify the templates to control the appearance of graph titles, labels, display p - values, median, confidence interval as well as many other functionality which are available but rarely used |
kaplan-meier plot, proc step, survival analysis, clinical trial, proc gplot, proc template | 9 | |
| 114 | T.I.P.S. (Techniques and Information for Programming in SAS) | Kathy Harkins, Carolyn Maass, Mary Anne Rutkowski |
This paper provides a collection of basic programming tips and techniques that SAS users can implement in their daily programming. This collection of tips should be useful immediately and will improve the efficiency of the programs. There are several examples organized by the following categories (Keywords: BASE STAT | macro variable, macro definition, proc sort, proc step | 9 | |
| 115 | Tales from the Help Desk 5: Yet More Solutions for Common SAS Mistakes | Bruce F. Gilsen | macro function, macro variable, macro put, missing value, numeric functions, sas log, %if-%then-%else, macro quoting function, date variable, macro definition | 8 | ||
| 116 | Techniques for Reading DB2 Data | Steven H. Feder | Of the ways to get results from DB2 using SAS, which work best in which situations? We compare PROC SQL, with and without explicit pass-through, DATA STEP code, and procedures. We test merging subsetted obser- vations from multiple tables and simple summarizations. We also look at comparisons on the Windows and z/OS platforms |
proc sql, proc step, proc univariate, odbc connection, order by, create table, sql pass-through, select, cpu time, macro loop, macro put | 15 | |
| 117 | Telecommuting SASuccessfully for SAS Programmers | Mary N. Varughese, Lisa Pyle, Mei Dey |
Telecommuting, as a viable work option, has steadily gained in popularity over the past decade. Growth will continue, fueled by proliferation of affordable technological advances and companies' desire to foster collaboration, productivity and innovation while supporting employees' work/life balance. Today pharmaceutical companies, faced with mounting cost containment pressure, must respond to increased globalization, standardization, and out-sourcing trends to attain greater effectiveness and competitiveness. Working teams are increasingly formed across geographic areas in different states, countries, continents and time zones. In many ways, these virtual teams no longer exist as an accessory but as a necessity to attract diverse skills and retain top talents in the industry. Telecommuting SAS programmers, whether occasionally, part-time or full-time telecommute, are members of growing virtual teams who significantly contribute to team dynamics and team success | sas programmer, statistical programmer, sas programming | 9 | |
| 118 | The 5 Most Important Clinical SAS Programming Validation Steps | Brian C. Shilling | data cleaning, clinical trial, proc means, proc step, clinical data | 6 | ||
| 119 | The Application of SAS Hash Oblect to Ultra-high Frehuency Financial Data: A Case Study in Limit Order Book Reconstruction | Dorian M. Noel | Over the last decade, the increased availability of ultra -high frequency (UHF) financial data on trades, quotes and order flow s in electronic order -driven markets has led to significant innovations in the fields of the empirical microstructure and quantitative analysis of financial markets. Unfortunately, the enormous size of these UHF datasets, usually several million observations per stock per day, has brought up new data processing and handling, in addition to computational challenges. In today's trading environment, the key challenge posed by UHF data is how one can efficiently and more importantly, quickly exploit a massive dataset to develop consistent and profitable (alpha generating) algorithmic trading strategies. Central to this exercise is the complete and accurate reconstruction of the electronic limit order book (LOB) of order-driven markets | hash table, proc freq | 10 | |
| 120 | The Beginnings of Creating a Civil Partnership Between SAS and Excel | Kathleen M. Siemborski | When it comes down to it, EXCEL is one of the most commonly used programs to display statistical data, tables, and graphs. Unfortunately for SAS users, that creates a problem with how we need to share our data. One of the most difficult problems I encountered as a new SAS user was when I was routinely e- mailed data in an EXCEL file, and wanted to use SAS to do my Statistical calculations. How was I supposed to get EXCEL and SAS to work together, without retyping, copy and pasting, and doing an extra round of quality checking on the data? In time, I learned a few different methods. PROC IMPORT and PROC EXPORT became my friends, the LIBNAME functionality was useful at times, and I got to know the ODS export system fairly well. This paper will cover these methods of how to import and export EXCEL files to SAS datasets and back again in conjunction with Windows XP |
excel, proc step, dataset, proc import, proc export | 6 | |
| 121 | The Colorful ODS | Ali Sabouri | Ever since its inception in SAS V8, Output Delivery System (ODS) has been a powerful tool for presenting reports in various formats (i.e. HTML, RTF, PDF, etc.). Examples here will show you how to apply simple codes efficiently to make your presentations more colorful. You'll learn how to use PROC REPORT in conjunction with ODS to "traffic light" cell values within your HTML output. Also using PROC PRINT with ODS will add much "style" to your output |
proc step, proc report, sample | 5 | |
| 122 | The Greatest Hits: ODS Essentials Every User Should Know | Cynthia L. Zender | Just when you think you know every song (feature) in the ODS hit parade, you discover that there's an option or destination or feature that has you singing its praises because the feature boosted your reports to the next level. This paper covers some of the essential features and options of ODS that every user needs to know to be productive. This paper shows concrete code examples of the ODS "Greatest Hits". Come to this session and learn some of the essential reasons why ODS and Base SAS rock! |
ods html, excel, proc step, proc tabulate, proc print, proc report, sas log, output delivery system, proc reg, ods pdf, file statement, proc template, dataset, output, proc univariate, ods output, ods csv, ods rtf, anova, by group processing, estimate, select, txt, user-defined format, sas output | 34 | |
| 123 | The Power of PROC FORMAT | Jonas V. Bilenas | The FORMAT procedure in SAS is a very powerful and productive tool, yet many b eginning programmers rarely make use of it. The FORMAT procedure provides a co nvenient way to do a table lookup in SAS. User gen erated FORMATS can be used to assign descriptive labels to data values, create new variables and find unexpec ted values. PROC FORMAT can also be used to generate data extracts and to merge data sets. This paper will provide an introductory look at PROC FORMAT for the beginning user and provide sample code that will i llustrate the power of PROC FORMAT in a number of application s. Additional examples and applications of PROC FORMAT can be found in the SAS Press book titled "The Power of PROC FORMAT" (2005, Bilenas) |
proc format, proc step, lookup, dataset, proc freq, missing value, proc tabulate, char., put statement, format statement | 9 | |
| 124 | The Top 10 Head Scratchers: SAS Log Messages That Prompt a Call to SAS Technical Support | Kim M. Wilson | As a DATA STEP programmer, you know the sigh of relief that comes when your job finishes and your SAS log is clear of any errors or warnings. When these messages do occur, most of the time they are intuitive enough so that you can move directly to the offending code, make the necessary changes, and complete the job successfully. However, what do you do about those perplexing messages that sometimes appear, making you scratch your head in puzzlement? This paper examines the top 10 errors, notes, and warnings that prompt DATA STEP programmers to call SAS Technical Support. The discussion addresses the common causes of the messages and provides solutions so that you can reduce your troubleshooting time and effort |
character variable, input statement, options statement, sample, infile statement, merge statement, sas log, error message, dataset, length statement, numeric variable, put statement, by group processing, user-defined format, if-then-else, proc print, proc step | 9 | |
| 125 | Tips to Use Character String Functions in Record Lookup | Anjan Matlapudi | This paper gives you a better idea of how and where to use the record lookup functions to locate observations where a variable has some characteristic. Various related functions are illustrated to search numeric and character values in this process. Code is shown with time comparisons. I will discuss possible three ways to retrieve records using in SAS DATA STEP, PROC SQL and Perl regular expression. Real and CPU time processing issues will be highlighted when comparing to retrieve records using these |
proc sql, proc step, character variable, cpu time | 12 | |
| 126 | Understanding the Anatomy of a SAS Deployment: What's in My Server Soup? | Mark L. Schneider | Did you want to better understand the pieces of a SAS metadata-based deployment and where they go and what they do? This paper highlights the major components of a metadata-based SAS deployment of solutions and business intelligence. Using the concepts of topology and tiers as a framework, this paper illustrates the location of key components and how they can be distributed across machines | sas base, business intelligence, sample, data mining, sas enterprise guide, proc sql, dataset | 18 | |
| 127 | Using Macros to Compute US Health Insurance Coverage Estimates for Insertion into a Web-based Table Generator | Michele M. Burlew, Peter Graven, Karen Turner, Michel Boudreaux |
SAS macro programs were developed to estimate health insurance coverage in the US population annually based on responses to two federal surveys and to format the results for loading into the SHADAC (State Health Access Da- ta Assistance Center) Data Center. The SHADAC Data Center is a web-based table generator tool. (www.shadac.org/datacenter) The macro programs prepare data for analysis using the DATA STEP and base SAS procedures, analyze the data with PROC SURVEYMEANS, combine ODS output data sets from PROC SURVEYMEANS, and create CSV files that are loaded into the web-based system. The SHADAC Data Center provides a way for health policy analysts to create customized tables and graphs of health insurance coverage estimates within a pre-defined set of parameters. The coverage estimates are derived from sta- tistical analyses of the US Current Population Survey's Annual Social and Economic Supplement (CPS) and from the American Community Survey (ACS) |
proc surveymeans, proc step, health insurance, macro variable, reference data, proc calis, proc printto, macro loop, macro definition, %if-%then-%else | 12 | |
| 128 | Using PRX to Search and Replace Patterns in SAS Programming | Wenyu Hu, Liping Zhang |
Programmers often need to search for patterns in text strings in order to change specific text. Perl regular expressions (PRX) introduced in SAS version 9 provide a convenient and powerful tool to locate, extract and replace text strings. PRX can provide simple solutions to complex string manipulation tasks and is especially useful for reading highly unstructured text strings. This paper explains the basics of PRX and how PRX functions work in SAS 9. It further explains how to code useful PRX functions and to use them to search and replace patterns by extending it to a SAS Macro environment through the use of %SYSFUNC and %SYSCALL. Keywords: Perl regular expressions (PRX), Regular expressions (RX), Pattern match | prxparse, macro definition, macro function | 6 | |
| 129 | Using SAS GTL to Visualize Your Data when there is Too Much of it to Visualize | Perry Watts, Nathaniel Derby |
In many of the SAS Institute publications about the new ODS statistical graphics, there is an introductory statement that defines an "effective" graph as one that reveals "patterns, differences and uncertainty that are not readily apparent in tabular output" (Kuhfeld, 2010; Rodriguez, 2008; Rodriguez and Cartier, 2009 ). Good graphs are also said to "provoke questions that stimulate deeper investigation, and ... add visual clarity and rich content to reports and presentations." Developing a good graph becomes a challenge, however, when input data map to crowded displays with overlapping points or lines. Such is the case with the Framingham Heart Study of 5209 subjects captured in the sashelp.heart data set and a series of 100 cumulative booking curves for the airline industry. In addition, interleaving time series plots can be difficult to interpret, and patterns can be missed when lattice plot panels are charted out -of- order |
scatter plot, proc step, histogram, series plot, time series analysis, proc template, proc freq, contour plot, order by, missing value, graph template language, proc sgpanel, proc means, nominal variable, cumulative frequency, line chart, numeric variable | 22 | |
| 130 | Using SAS to Back Up Files Across Multiple Directories | Laura N. Lawrence | Often times we need to reference earlier work done on a project. Therefore it is necessary to save many different versions of certain files as we work. For example, you might need to compare a report you did 2 months ago to a more recent report or you need to compare an older SAS data set to a newer one. Therefore you must have all these older versions saved in a loca tion that is easy to identify. This paper will take you through a macro useful in backing up various files of any type. The purpose being to create a new folder, named as the last modified date of the files to be copied, and copy over all files of the user -specified directory. This macro is set up so it can be run over multiple directories with ease. It works on the assumption that you want the entire directory backed up. This would come in handy when the programmer is responsible for saving all versions of their code and other files, such as the SAS data sets | macro variable, dataset | 4 | |
| 131 | Using SAS to Ease the Proofing of Messy Text | Nat H. Wooding Jr., Richard W. La Valley |
The SAS Global Users Group has had a recent initiative to scan and OCR the older paper proceedings from the SAS Users' Group International (SUGI) conference (SAS.O ne to SUGI 21) and make these available in machine readable form on sasCommunity.org. These are now available for SAS Users. Part of this project involved digitizing the attendance lists for use for future planning and analysis for the SAS Global Forum. The proofing of these lists proved to be a challenge due to misinterpretations in the optical character recognition process (OCR). The misinterpretations were due both to very minor printing variations in the text as well as the difficulty that the OCR software had in recognizing seeming clearly printed text. As an example, lower case ells were often rendered as upper case "I"s so that the name Bill was seen as BiII or Bi II | proc step, dataset, txt, if-then-else | 8 | |
| 132 | Using SAS To Identify Cancer Treatment Patterns in Administrative Claims Data | Laurie Hamilton | This paper presents an approach using Base SAS routines and the SAS DATA STEP to identify multiple seque n- tial chemotherapy regimens (lines of therapy) composed of one or more drugs. The identification of specific regi- mens is data-driven rather than pre-specified. The claims are pre-processed using date arithmetic and the resulting dataset is then passed once through a series of DATA Steps. These steps key on RETAIN statements and use DATA STEP standbys such as DO loops with exit controls and one -dimensional arrays to capture regimen begin and end dates and interruption events with associated switch dates. A SAS character function is applied to created text versions of regimen descriptions directly from the source claims. Strategic boundaries and allowable gaps in drug - on-board are controlled by global macro variables, making the program easily adaptable to a variety of specific a- tions |
macro variable, sample, insurance claims, in=, excel, do loop, xls, file statement, proc step, output delivery system, if-then-else | 15 | |
| 133 | Using SAS to Navigate the USDA Forest Servicees Forest Inventory and Analysis Database | Matthew Russell, Philip Radtke, Aaron Weiskittel |
The Forest Inventory and Analysis (FIA) program, administered through the USDA Forest Service, serves as the Nation's forest census. Collected over long time periods and wide geographic areas with consistent data management protocols, FIA data have been used in a variety of settings to help inform our knowledge of the Nation's forests. To use the voluminous FIA database, software that employs sound database management software along with flexible statistical modeling procedures would be advantageous to use for a database of this size and scope. This paper describes how SAS is being used to implement and put the FIA data to use in a research setting | proc model, estimate | 4 | |
| 134 | Using SQL joins to Perform Fuzzy Matches on Multiple Identifiers | Jedediah J. Teres | Matching observations from different data sources is problematic without a reliable shared identifier. Using multiple identifiers can be more restrictive as it requires multiple exact matches. One way around this is to create a match score based on the number of matching identifiers. This score can be weighted to favor certain matches or sets of matches (e.g., first name and last name) over others (e.g., first name and date of birth). This paper builds on a previous paper describing a technique for creating and using a match score in the context of a SQL join to find matches in cases when all identifiers are not exactly the same and allows for the use of COMPGED to find close matches without requiring strict equality | proc sql, inner join, proc step, create table, order by, put statement, data merging, sample | 6 | |
| 135 | Using the 9.2 Statistical Graphic Procedures | Charles D. Kincaid | SAS has a new set of graphics procedures called Statistical Graphics. They are built upon the Graphics Template Language (GTL) in order to make the powerful GTL easi ly available to the user. SGPLOT and SGPANEL are two of the procedures that can be used to produce powerful graphics that used to require a lot of work. This upgrade is similar to the ease-of-use upgrade in output manipulation when ODS was first published. This presentation will teach the audience how to use PROC SGPLOT and SGPANEL and the new capabilities they provide beyond the standard plot. By using these new capabilities, any user can tell the story better |
proc step, series plot, proc sgplot, numeric variable, proc sgpanel | 18 | |
| 136 | Using the SG Procedures to create and enhance scatter plots | Peter L. Flom | The scatter plot is a basic tool for presenting information on two continuous variables. While the basic plot is good in many situations, enhancements can increase its utility. I also go over tools to deal with the problem of overplotting | scatter plot, box plot | 12 | |
| 137 | Validating CDISC Compliant Data and Creating Define.xml Made Easy | Sandeep Purwar | The goal of this paper is to list possible techniques available in the industry to validate the SDTM metadata and to generate Define.xml. This paper concentrates how to use SAS Clinical Toolkit to achieve above mentioned tasks | dataset, data cleaning, cdisc | 5 | |
| 138 | Viva la Resolucion! 5 Things You Should Know About Macro Resolution | Daniel R. Bretheim | macro variable, macro put, proc freq, proc step | 8 | ||
| 139 | Waterfall Charts: Play the Mario with Your Data | Niraj J. Pandya, Sapan Raval |
Waterfall chart is a data visualization technique that depicts how a value increases or decreases for parameter of interest. Waterfall chart is gaining recognition in today's world because of its simple yet powerful representation of results. It can be used for performance or response analysis, especially for understanding or explaining the overall response of a parameter which can vary with the effect of multiple factors. Application of such charts can be applied across various domains such as Finance, Health care, Manufacturing, Clinical data analysis etc. SAS offers multiple solutions to produce Waterfall Charts and in this article we will focus on the use of SGPLOT procedure. The example given in this paper is specific to clinical data analysis |
waterfall chart, proc step, proc sgplot, data science, complete response, in=, response variable, clinical data | 7 | |
| 140 | Weighted Sehuential Hot Deck Imputation: SAS Macro vs. SUDAANes Proc Hotdeck | David Izrael, Michael P. Battaglia |
Item non-response is a challenge faced by virtually all surveys. Item non-response occurs when a respondent skips over a question, refuses to answer a question, or indicates that they do not know the answer to a question. Hot deck imputation is one of the primary item non-response imputation tools used by survey statisticians. Recently, new competitor in the field of Weighted Sequential Hotdeck Imputation has arrived: PROC HOTDECK of SUDAAN, version 10. We compared the results of imputation using the new procedure with the results of the Hotdeck SAS Macro with respect to: a) how close the post-imputation weighted distributions and standard errors of the estimates are to those of the item respondent data; b) whether there is a difference in the number of times donors contribute to the imputation |
imputation, proc step | 7 | |
| 141 | What a View! | Matthew Cohen | This paper will present practical information about when to use SAS views. Should you create a view or a temporary dataset when it will be read multiple times? Is it OK to join two views or to join two datasets into a view? Does it matter if PROC SQL or the DATA STEP is used? The answers might surprise you. I will focus on real-world results on multiple platforms rather than theoretical answers |
proc sql, where statement, proc step, proc report, cpu time | 6 | |
| 142 | What's on Your Menu? | Sanjaya Kumar | This presentation will show how base SAS can be used in creating a user friendly menu for hospital admissions data to compute various indicators and measures. The program can use the variables in multiple formats, based on user input, and uniformly rename the variables to link with population data from US Census bureau. As part of the CDC - funded New York State Environmental Public Health Tracking (EPHT) project, th e New York State Department of Health (NYSDOH) is developing a surveillance system that links and displays environmental hazard, health outcome, and sociodemographic data . A menu driven SAS program i s being developed to produce nationally consistent health data for asthma and myocardial infarction hospital admissions. This program will show the effectiveness of %WINDOW and its ability to pass user defined input values for several of the SAS program components | txt, macro variable, in= | 9 | |
| 143 | Why Programming Efficiency Should Matter to All of Us | John J. Cohen | In Data Mining we tend to focus on the sexy front -end tools, the built in procedures, and canned routines. These have certainly been optimized for us, and in any case, we will need to do whatever it takes to produce final results. Unfortunately the less visible part of the job - data preparation - can take up to 75% of the effort. Further, we sometimes have to create our own procedures. Becaus e of this, writing efficient programs should be important to all of us. We will suggest here how to do that without losing sight of our main analysis. * | proc step, mp connect, proc format, character variable, where statement, dataset, cpu time, proc sort, parallel processing, if-then-else, keep statement, numeric variable, proc freq, proc means, flat file, options statement, sample, length statement | 15 | |
| 144 | Zebras Wanted. Using ODS Tagsets and PROC REPORT to Create a Striped Spreadsheet | Gayle K. Springer | ODS TAGSETS allow us to define the layout and format of our output documents. We use TAGSETS.EXCELXP, the REPORT procedure and DATA STEP processing to create a color-striped XML file. The XML file should be opened in MS EXCEL and saved in EXCEL format prior to sending out the report. This paper provides examples of coloring rows based on specific variable values as well as coloring rows based on related observations. This paper assumes familiarity with PROC REPORT, the DATA STEP, and SAS Macro Language |
excel, proc report, macro variable, proc step, proc format, mod, macro loop, macro definition | 8 |
This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.
The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.
SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS