SUGI 2005 Papers - Index
246 papers. Source: SAS Users Group International conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | "That Can't Be SAS!" Starting SAS/AF Applications | Greg J. McLean | As system developers create SAS software and applications, there are often several objectives, which must be adhered to. Some of the more common system development objectives include: Security Ease of Maintenance Functionality (does what it is suppose to do) Ease of Use Depending on the system, often most or all of the objectives or specifications are equally important. However, if the client can't figure out how to run and use the system, the fact that it is easy to maintain and does what it is suppose to no longer matters. As great as the SAS product is, often the user or client of a given SAS application may or may not have experience with the use of the SAS interface. Therefore, it is often necessary to make the invocation of a SAS/AF application as simple as possible. The focus of this paper is to address the issue of "Ease of Use", in particular, starting a SAS/AF application from the Microsoft Windows desktop (icon) |
sas log, sas library | source | 9 |
| 2 | %CYARROW, a New Annotate Macro | Chang Y. Chung, Ya Huang |
We present a macro, %CYARROW, that makes it easy to draw arrows using SAS /GRAPH's superior Annotate facility. %CYARROW i s spec i fi c al l y desi gned t o be used i n c o nj unc t i o n wi t h %ANNOMAC macros, a set of SAS macros that provides a shortcut when creating an Annotate dataset. %CYARROW is an alternative to the undocumented (and "broken") %ARROW macro. In addition to honoring the five standard options for the DRAW Annotate function (COLOR, HSYS, LINE, SIZE, and WHEN), %CYARROW offers sophisticated arrow shape options th at control the length and the angle of the arrow tip and its aspect ratio | macro call, proc step, macro variable, macro definition | source | 10 |
| 3 | %htmlForm: An HTML Form and SAS/IntrNet Code Generator | Don Boudreaux, Keith Cranford |
Developing SAS/INTRNET Dispatcher applications frequently involves writing HTML forms and coding macro programs to use the information that is output. This paper presents a macro program called %htmlForm that helps automate that process. It uses a SAS data set as input to generate a document that contains an HTML form and an associated code file that contains a collection of SAS macros designed to check any of the possible name/value pairs that are sent to output by that form. Together, these files are considered a good "starting point" for developing HTML interfaces for SAS/INTRNET applications |
dataset, macro variable, character variable, sas log, macro definition, binary variable, proc step | source | 10 |
| 4 | %sas2xl: A Flexible SAS Macro That Uses Tagsets to Produce Complex, Multi-Tab Excel Spreadsheets with Custom Formatting | David Brown | Converting SAS data to EXCEL format spreadsheets is n ot necessarily hard. But creating highly user -friendly spreadsheets with multiple tabs and complex formatting options is much more difficult. This paper explores how a custom SAS macro, %sas2xl, can be used to generate better spreadsheets more easily tha n other methods available. It harnesses the power of ODS TAGSETS to generate custom XML code that EXCEL reads in as sheet formats. %sas2xl is designed to be user -friendly and flexible, and it can produce spreadsheets with options such as multiple tabs, f rozen column headers (first row doesn't scroll off the screen), print headers and footers, and traffic highlighting. This paper concentrates on the technical aspects of this solution, which works on all platforms and Versions 8 or 9 of SAS. The intended audience is intermediate to advanced users |
excel, macro variable, proc report, proc step, macro call, macro loop, xls, %if-%then-%else, ods html, macro definition, do loop, macro quoting function | source | 10 |
| 5 | A Better SYSIN Than SYSIN: Instream Files on Any Platform | Ted Conway | Surprising as it may seem, those coming from the mainframe world may find themselves sorely missing the instream file features provided by the SYSIN JCL statement as they move applications to Windows and Unix. Without these features, one is often forced to create many small external files to support an application, making it impossible to see at-a-glance what the processing is doing. This paper presents a simple macro that not only provides SYSIN-like functionality on the Windows and Unix platforms, but also goes beyond some of SYSIN's limitations, allowing one to effect macro-like substitutions on instream data for use by SAS or non-SAS applications. It may be of interest to anyone who uses Base SAS on the PC, Unix, or mainframe platforms | cards, macro variable | source | 5 |
| 6 | A Clever Demonstration of the SAS SUBSTR Function | David J. Austin | The SAS SUBSTR function differs from the substring function in other programming languages as it can be used on either side of the assignment operator. This paper demonstrates its practical usage by building programs to separate and manipulate text. Specific topics include: Proper Syntax Use; Comparison with the COLON MODIFIER; Left-hand Side Usage; Use in Conjunction w ith the INDEX F unction; Usage on Both Sides; Usage in an Align MACRO; and finally, Simple Encry ption T echniques for Creating Cry ptograms. T he demonstrations should be useful to both beginner and intermediate SAS users | index, colon modifier, substr function, sysdate9 | source | 7 |
| 7 | A Comparison of Two Procedures to Fit Multi-Level Data: PROC GLM versus PROC MIXED | Erin D. Shannon, MaryAnne DePesquo Hope |
This paper presents the advantages of using PROC MIXED versus PROC GLM as a solution for hierarchical data. Analyzing multi-level, non-independent data requires a different methodology from the standard general linear model that is implemented in PROC GLM. A random coefficient (RC) regression model utilizing the SAS procedure PROC MIXED can be used when the assumption of independence is not satisfied due to group structure in the data. Data from a health care survey administered to beneficiaries in several different health plans were examined. In this case, beneficiaries are grouped by health plan, and there is a distinct possibility that the beneficiaries' survey responses are more similar within plans than across plans. In the preliminary analysis to determine the most appropriate model-to- data agreement, the intraclass correlation coefficient (ICC) was investigated. The ICC assesses the degree of clustering or dependency among subsets of cases in nested data |
proc step, proc mixed, proc glm, regression analysis, proc genmod, estimate, fixed effects, predictor variable, proc calis, sample, response variable, covariance, binary variable, sample size, correlation | source | 7 |
| 8 | A Gentle Introduction to the Powerful REPORT Procedure | Ben Cochran | When the REPORT Procedure was first introduced by SAS with the advent of Version 6, most of the SAS world was mainframe users. This new procedure brought with it a great deal of power and flexibility that added much strength to SAS' arsenal of report generating procedures. It had powerful formatting, summarizing, and analysis capabilities that made it easier to create anything from a simple listing to a very complex report. However, some critics have stated that, while it has awesome features, it looks like a mainframe report. That was true until SAS released the Output Delivery System (ODS) experimentally in Version 7, and in production mode in Version 8. If the REPORT procedure was a cake, then ODS delivers the icing to generate truly beautiful reports. This paper offers a quick overview of the types of reports that can be generated with PROC REPORT, and how to add some of the ODS features to deliver stunning reports |
proc report, proc step, output delivery system | source | 12 |
| 9 | A Hacker's Guide to SAS Environment Customization | Brian P. Fairfield-Carter, Stephen Hunt |
Most SAS users have at least a few customizations and personalization they like to make to their SAS environments. Real hackers, naturally, like to explore the extremes to which these customizations can be taken, mostly to shroud themselves in mystery, but partly to try and discover practical and useful tricks and tools. In this spirit, four customizations as presented here: 1. A small dynamic HTML application that makes copies of your user profile, and sets configuration option "- SASUSER" to point to a free copy each time a new SAS session is launched (allowing multiple concurrent sessions to all support the same preferences and options) 2. A SAS enhanced editor button configured to plug meta-data into a PROC REPORT "code template" 3. Using the SAS enhanced editor to write and test programs in 'foreign languages' (in both interpreted and compiled environments) 4 |
proc report, proc step, txt | source | 10 |
| 10 | A Hands-On Introduction to SAS DATA Step Programming | Debbie Buck - SC | The SAS DATA STEP is o ne of the most powerful and versatile software tools available for handling and manipulating data files, especially large data sets. It is also sometim es somewhat confusing to SAS programmers as to what the different statements do, what the corr ect syntax is for these statements, and how they can help you achi eve your goals. In this workshop we will examine how to get data into a SAS data set, how to create new variables or modify existing variables, how to conditionally handle variables or observations, how to handle a group of variables in the same way, and how to control which observations are written to the SAS data set |
dataset, input statement, if-then-else, set statement, proc step, flat file, label statement, subsetting if, do loop, merge statement, sas log, array, end, proc contents, libname statement | source | 8 |
| 11 | A Macro for Computing Point Estimates and Confidence Intervals for Mahalanobis Distance | Kristine Y. Hogarty, Jeffrey D. Kromrey, Melinda R. Hess, John M. Ferron |
This paper discusses a SAS macro that provides three approaches to statistical inferences about Mahalanobis distance. Mahalanobis distance is useful as a multivariate effect si ze, being an extension of the standardized mean difference (i.e., Cohen's d). This program calculates three point estimates of D2 (a sample estimate, a jackknife estimate, and an adjusted estimate advanced by Rao, 1973). Further, the program computes a series of confidence bands around each estimated value of D2. These confidence intervals are calculated employing two estimation procedures (an interval inversion approach and a common bootstrapping method) . The paper presents a demonstration of the SAS/IML code employed in a macro entitled D2BAND, and provides a table with the resulting output |
effect size, sample, confidence interval, bootstrap, mahalanobis distance, dataset, covariance | source | 10 |
| 12 | A Macro for Importing Multiple Excel Worksheets into SAS Data Sets | Helen C. Sun, Cindy Wong |
Microsoft EXCEL is a widely available application and is commonly used to capture and tran smit data. These data are often imported to SAS for manipulation and analysis. Many methods exist to import data from EXCEL to SAS, such as PROC IMPORT, IMPORT WIZARD and ODBC. In this paper, we introduce a macro, %xl2sas, which uses the powerful Dynamic Data Exchange (DDE) technique 1 to import all the worksheets within an EXCEL workbook by one invocation. %xl2sas can automatically handle a variable number of worksheets and generate separate SAS datasets without specifying the name of each worksheet as required in the method presented by Qi 2. This SAS macro was initially developed as a solution to facilitate data transfers in a clinical trials setting. As EXCEL files often contain multiple worksheets, we believe %xl2sas is a flexible a nd user-friendly tool that has wide applicability for the importing of EXCEL to SAS |
excel, dataset, xls, character variable, clinical trial, macro variable | source | 9 |
| 13 | A Macro to Calculate Kappa Statistics for Categorizations by Multiple Raters | Bin Chen, Lynn Seel, Dennis Zaebst |
It is often necessary to assess the agreement on multi-category ratings by multiple raters in various studies in many fields. Kappa is one of the most popular indicators of interrater agreement for categorical data. SAS procedure PROC FREQ can provide kappa statistic for two raters. A SAS macro MAGREE computes kappa for multiple raters with multi-categorical ratings. Both have limited applications. The author wrote a macro which implements the Fleiss (1981) methodology measuring the agreement when both the number of raters and the number of categories of the rating are greater than two. This macro can handle missing data as well as data that are not square, which are the two major limits of PROC FREQ and macro MAGREE. It is very easy to use. Anyone who has minimum SAS programming skill and basic understanding of the kappa statistic can use the macro with ease. All the users need to do is to start the macro and input some parameters. SAS products involved are Base SAS and SAS MACRO |
cohen's kappa, missing value, proc freq, proc calis, proc step | source | 6 |
| 14 | A Matter of Presentation: Generating PowerPoint Slides from Base SAS Using Dynamic Data Exchange | Koen Vyverman | The creation of PowerPoint slides with SAS content using DDE in a Base SAS environment has long been considered impossible. Unlike MS Word and MS EXCEL, the PowerPoint application does not come with a scripting language like WordBasic or the EXCEL 4 macro language that would allow DDE to talk to it in a client/server fashion. The job can be done, though, by using DDE to EXCEL as an in termediate agent to pull the strings of PowerPoint. A set of easy SAS macros is introduced to perform a number of bas ic PowerPoint operations. As a sample application, a SAS catalog of graphs is exported to a stand-alone PowerPoi nt presentation. No specific technical knowledge is required from the reader, at least not beyond a basic under standing of the SAS macro language. A slight degree of familiarity with DDE to EXCEL concepts should prove enlightening, though |
excel, macro facility, put statement, sas base, macro definition, conditional do loop | source | 15 |
| 15 | A Microsoft Access GUI for SAS Automation | Rubin Nan, David Mullins |
This paper describes techniques that use MS-Access Visual Basic tools to create a Graphical User Interface (GUI) to run SAS and facilitate the passing of parameters to SAS. Using this GUI, users can fulfill any SAS task by embedding SAS codes in the Visual Basic script, and also execute separate SAS programs with or without macro variables. This paper will illustrate the following: how to create front-end components and setup their properties, how to embed SAS codes in the Visual Basic script, and how to use a GUI to run a separate SAS program with or without macro variables | macro variable, data science | source | 4 |
| 16 | A Multi-Model Approach to Improve Final Results | Ryszard Szupiluk, Piotr Wojewnik, Tomasz S. Ząbkowski |
In this paper w e apply multidimensional decompositions to improve modelling results. Results generated by a model usually include both w anted and destructive components. In case of a few models, some of the components can be common to all of them. Our aim is to find basis elements and distinguish the components with the positive influence on the modelling quality from the negative ones. After reject ing the negative elements from the models' results we obtain better results in terms of some standard error cr iteria. T he identification of the basis components can be performed by ICA and PCA transformations. The procedure of models dec omposition and improvement is implemented in SAS/IML. T he models' errors are analysed in SAS BASE and the graphs are generated in SAS/GRAPH . The automation is performed using SAS MACRO language. Paper is addressed to the audience with data mining and statistical background |
correlation, proc princomp | source | 6 |
| 17 | A Proportional Hazards Approach to Campaign List Selection | Charles Manahan | Churn, or customer loss, is a serious problem in the wireless telecommunications industry. Hence, churn reduction is a priority goal in the wireless industry, and marketing campaigns are frequently done to reduce this problem. But, how well do they succeed, and what can be done to make them more successful? There are three traditional parts to any marketing campaign, the offer, the creative and the list. This paper addresses developing predictive models using SAS/ENTERPRISE Miner and SAS/STAT to give lists with a higher response rate. SAS software is sufficiently powerful to do both analysis of past campaigns and produce predictive models. The results of a campaign on both churn and contract renewal were analyzed using a life table approach. This gave the response shape that a predictive model should emulate. The proportional hazards approach was used to model the predicted response to future campaigns |
proc step, logistic distribution, proc logistic, regression analysis, data mining, validation set, logistic regression, data cleaning | source | 7 |
| 18 | A Quick Tour of SAS ETL Studio to Build a Data Mart | Eric Rossland, Kari Richardson |
This hands-on workshop will give users a basic tour through the functionality of SAS ETL Studio to help build a small data mart. The participants in this workshop will use SAS ETL Studio to define necessary library definitions, in addition to source and target tables definitions. Partici pants will create a process flow diagram using a simple transformation and load the target table. In the last step, participants will create two reports using the target table | data mart, proc freq, data merging, proc sql | source | 20 |
| 19 | A Regulatory Compliant Process for Developing SAS-Based Reports | Chuck Reap | This paper describes an efficient process that is tailored for the high-volume, batch-based reporting that is common in the pharmaceutical and other regulated industries. It includes topics such as code sharing, code promotion, code maintenance, check-in and check-out, audit trails, versioning, batch processing, output management, sign off, and quality control. The presentation walks the audience through the process using technology provided by SAS Drug Development 3.0 | clinical research, macro definition, sas programmer, sas log, data cleaning, sas output, audit trail, production run, sas enterprise guide, macro variable | source | 15 |
| 20 | A Sample Macro for Creating a List on the Fly | Debbie Miller | The SAS macro facility is a great tool for adding flexibility to your programs. You can create a macro that will generate pieces of code on the fly, and then use that macro to insert the code later in your program. By doing this, you can alter the way a program works without having to hard-code the changes. Even a macro that generates a small section of code can be very helpful if you are using a program repeatedly. This paper offers a simple example of a macro that illustrates this idea. This macro generates a list that is used in a WHERE statement inside a DATA STEP to select the records that are read from another data set. This paper is intended for SAS users of all skill levels |
macro variable, where statement, call symput, dataset, macro facility, excel, macro definition, macro loop | source | 4 |
| 21 | A Sample Web-Based Reporting Container for ODS XML Reports | Christopher R. Olinger | The SAS system offers a wide variety of tools for reporting needs. From data _NULL_ to ODS PDF, there are many avenues to produce and surface SAS reports. What is less obvious is what to do with these reports once you have created them. This advanced tutorial describes techniques for building a simple Web container for ODS XML and other SAS reports. This tutorial covers various SAS technologies including ODS HTML/XML/TAGSETS, SAS/INTEGRATION Technologies, Java, and XML transforms. This paper is for anyone who is interested in how abstract reports can be generated in SAS and how they can be displayed in a web infrastructure |
sample, ods html, macro variable, sas output | source | 14 |
| 22 | A SAS Framework for Network Security Intelligence | Michael Protz, Joe Zilka, Jeff Mudd |
An organization's computer network is constantly under attack, facing threats such as probes, worms, viruses, and host-system root access attempts. The threats originate outside the network from sources worldwide, as well as inside network boundaries. To counter threats, most organizations employ various types of point products, such as firewalls, routers, and intrusion detection sensors to alert them of hostile activity. Some organizations employ event correlation engines to manage these point products and provi de a single point of control for reacting to hostile activity. The end goal is obvious-provide an impenetrabl e Computer Network Defense (CND) that prevents interruption of network services and protects an organization's critical data. This paper presents a SAS-based framework that enhances the real-time data provided by point products and event correlation engines, provides a consolidat ed view of CND data in a historical context, and most important, improves an organization's understanding of the health of its computer networks. This paper details the key components of the framework: a centralized repository to integrate and manage all CND-related data, scalable storage architecture to efficiently handle extremely large volumes of data, and ro le-based interfaces to deliver critical CND information to the right consumers at the right time. This paper also explains the potential use of advanced analytics for the detection of hostile activity undetectable by the signature- based point products. The last section contains a case study of a real-world implementation of this framework at the Navy Computer Incident Response Team in Norfolk, Virginia | correlation, sas enterprise guide, traffic data, data science, trouble ticket, excel | source | 16 |
| 23 | A SAS Macro for Producing Customized Reports | Robert G. Edson, Yajie Wang, Lan Zhao |
To produce highly customized reports, we use DATA _NULL_ and PUT statements. In the process, we often need to consider the unique requirements and specifications for a given report. Those requirements and specifications include but are not limited to the following: column positions and headings, row label width and indentation, blank lines between rows, number of columns that appear on each page, page breaks, and other design specifications. The work quickly becomes tedious, repetitive, and time consuming. A question naturally arose from this process, namely, can we generalize the above procedure by creating a SAS macro to accomplish the objective? This paper presents a SAS macro that aims to provide a solution to this problem. We also demonstrate the construction of such a macro using a concrete example |
macro definition, macro variable, macro loop, data merging | source | 10 |
| 24 | A SAS Macro for Visually Displaying Correlations between Brain Regions Using fMRI Data | Warren B. Bilker, Colleen M. Brensinger, Ruben C. Gur, Maximilian Herlim |
We developed a SAS macro for generating a summary graphic in 2-dimensional space of the correlations among brain regions using measures calculated from functional magnetic resonance imaging (fMRI) data. The graphical output allows the user to easily visualize differences between patient groups with regards to connectivity of brain region activity. The macro takes the output from PROC CORR and creates an annotate dataset to be used by PROC GANNO for creating the graph. Different line widths are used for connecting brain regions on the graph based on the strength of the Pearson or Spearman correlation coefficient (or, ultimately, any other measure of monoteneity). The design of this macro will be presented, along with sample output graphics |
correlation, proc step, proc means, proc corr, auc, in= | source | 6 |
| 25 | A SAS Macro to Generate Enhanced Kaplan-Meier Plots | Heidi Christ-Schmidt, Matthew T. Downs |
Many clinical trials have time-to-event endpoints, and Kaplan-Meier estimates of time free of an event are commonly used to summarize these endpoints. Although plots of the Kaplan-Meier estimates are useful and easily generated through PROC LIFETEST, reviewers often require additional information, such as the number of patients at risk or log rank statistic, to better interpret the Kaplan-Meier plots. In some cases the reviewers are only interested in estimates up to a specific timepoint of interest. This paper presents a macro that allows the programmer to easily modify a Kaplan-Meier plot to meet most needs of clinical and statistical reviewers. In addition to allowing the programmer to add a variety of additional information to the figure, it also gives the programmer more control over the figure's appearance. Further, it provides flexibility in the structure of the input dataset needed to generate these enhanced Kaplan-Meier figures |
proc step, sample size, sample, kaplan-meier plot | source | 12 |
| 26 | A SASautos Companion: Reusing Macros | Ronald J. Fehd | Reusable SAS R⃝ programs come in two forms: macros or %includes. This paper reviews the stan- dard SAS environment and examines the options used to customize a session or batch program for reuse of macros stored in the project directory . Expected audience is intermediate to advanced pro- grammers and macro users. Keywords: autocall compile macro masking MautoSource mStored program reuse SASautos SASmStore source store. Contents | stored macro, macro quoting function | source | 12 |
| 27 | A Shift in Time: Using SAS Date Alignment Operators | Andrew H. Karp | SAS Date Alignment operators provide a powerful suite of tools for "shifting" date and/or time from their default intervals to the customized intervals you specify. For example, SAS date alignment operators can be used to count the number of fiscal years between two dates, rather than counting the number of calendar years between two dates. Date Alignment Operators can be applied by anyone who works with date, time or DATETIME variables, and are of particular use/relevance to SAS users who apply SAS/ETS module procedures to their data |
sysdate9, datetime variable, time series analysis | source | 2 |
| 28 | A System to Calculate Market Value-at-Risk Using Monte Carlo Simulation II: Reporting | George Rezek | The non-additive nature of VaR results presents special problems in reporting. This paper describes the mechanics of VaR calculation and the maintenance of elemental correlations across all levels of aggregation, such as enterprise- wide, business division and instrument type. Examples of graphs used in reporting are also given | interest rate, confidence interval, macro variable, correlation | source | 11 |
| 29 | Achieving Optimal I/O Performance with SAS9 | Frank M. Bartucca, Edward Hayes-Hall |
With both the loading of data into SAS data marts and the analysis of those data, large volumes of data are being processed by SAS programs these days. We have found that performance greatly depends on the tuning and optimization of server I/O subsystems. SAS Institute and IBM have been working closely together on product improvements that will boost the performance of SAS applications on IBM ^ pSeries servers and storage devices. In this paper, we present information on the tuning of SAS I/O components on AIX as well as how to optimally configure and tune the underlying I/O subsystem. We describe the methodology and process to obtain this performance improvement and how it relates to a specific SAS workload | cpu time, sas log, proc sort, proc step, performance tuning, dataset | source | 11 |
| 30 | Across the Great Divide: Creating PC-Ready Formatted Output Using Base SAS Output Delivery System on the Mainframe | Barbara L. Lockley | It may have seemed as if the mainframe programmer was left out of the OUTPUT DELIVERY SYSTEM (ODS) explosion. It may have seemed that by using the SAS System for MVS you could not exploit the more powerful capabilities of ODS. Well in fact, beginning with Version 7, the full power of ODS can be harnessed within the SAS System MVS Operating System environment. This paper will demonstrate, through the use of examples and sample code, how to create output files which can be rendered via a web browser (i.e. HTML, XML, CSS, etc.) and are compatible with the suite of Microsoft (MS) Office products, i.e. .xls, .doc, etc. You can use the power of BASE SAS ODS to create and format output data once, and then use that data to generate mainframe print, as well as personal computer or server ready output |
macro variable, sas base, sample, output delivery system, sas log, proc step, proc template, ods html, excel | source | 5 |
| 31 | An Alternative Method of Transposing Data without the TRANSPOSE Procedure | Sunil Kumar Gupta | While the PROC TRANSPOSE procedure may be flexible enough to generate a variety of report formats, it may not be appropriate if the user wants a custom report. In addition, for some cases, it may not be possible to successfully apply the TRANSPOSE procedure to obtain the desired output. A technique is presented that will provide the user with more control on the number and order of the columns generated, enable new columns to be created, and allow for transposing of several variables from different data files. The features of the two methods are compared and discussed |
proc transpose, class variable, proc step, proc means | source | 6 |
| 32 | An Animated Guide to Basic Parallel Processing | Russell M. Lavery | SAS has added many new features to V9.1, features that can dramatically reduce the clock-time-to-solution for jobs that are both CPU bound and/or I/O bound (clock-time-to-solution is how long a programmer has to wait to get his/her answer). Simply put, V9.1 employs a strategy of Divide and Conquer. SAS takes the code that a programmer submits and attempts to split that task into small tasks, tasks that can execute independently. SAS writes mini-programs called threads to execute the small-tasks. Many SAS Procs will implement threading, but to gain any benefit, the hardware must be able to execute multiple tasks independently. A rough recommendation for hardware capable of taking advantage of SAS 9.1 features is: a machine with 4 independent CPUs, a Gig of RAM (or more), an I/O channel for each CPU and no more than two disk drives per I/O channel. This paper explores several of the features of parallel processing available in SAS. 9.1 | proc step, macro variable, parallel processing, options statement, symbol table, proc sort, proc print, filename statement, where statement, macro put, sas base, proc printto, proc datasets, mp connect, sas programmer, txt, work library, proc sql, data step | source | 25 |
| 33 | An Easy-to-Use SAS Table Formatting Macro: Stand-Alone, Flexible, and Quick | Zbigniew A. Kadziola | A reporting macro was created with the following requirements: functionality similar to PROC TABULATE, much better than PROC TABULATE for controlling output layout, ease of incorporating non-PROC TABULATE statistics, and overall ease of use. The table definition mimics the final output and includes text, macro variables, macro calls, and special characters (cell and row separators, decimal tab, line feed, repeated column characters). The sub-macros %c(cname) and %e define a categorical variable cname and its scope within the table definition. To define a continuous variable, a pair of sub-macros, %v(vname) and %e, are used. The variables can be nested in a similar way to PROC TABULATE. If within the table definition there are macro variables that have names equal to the PROC TABULATE statistical keywords, the macro will call PROC TABULATE to resolve them |
proc tabulate, proc step, macro variable, interval variable, proc freq, clinical trial, macro call, macro quoting function | source | 8 |
| 34 | An Introduction to Quantile Regression and the QUANTREG Procedure | Colin Chen | Ordinary least-squares regression models the relationship between one or more covariates X and the con- ditional mean of a response variable Y given X = x. In contrast, quantile regression models the relationship between X and the conditional quantiles of Y given X = x, so it is especially useful in applications where extremes are important, such as environmental studies where upper quantiles of pollution levels are critical from a public health perspective. Quantile regression also provides a more complete picture of the condi- tional distribution of Y given X = x when both lower and upper or all quantiles are of interest, as in the analysis of body mass index where both lower (underweight) and upper (overweight) quantiles are closely watched health standards. This paper describes the new QUANTREG procedure in SAS 9.1, which com- putes estimates and related quantities for quantile regression by solving a modification of the least-squares criterion |
regression analysis, proc quantreg, confidence interval, outlier, bootstrap, correlation, covariance, mahalanobis distance, resampling, proc step, proc means, ods graphics, likelihood function, output delivery system, response variable | source | 24 |
| 35 | An Introduction to SAS Applications of the Windows Scripting Host | Brian P. Fairfield-Carter, Stephen Hunt, Tracy Sherman |
Analysis Programmers in the Pharmaceutical industry are often confronted with a variety of requirements that are peripheral to the more common tasks of data manipulation and summarization. These include supporting multiple output file types (.doc, .rtf, .ps, .pdf), making operating system calls (for example, to retrieve file attribute information), and carrying out file-handling operations. These tasks are often satisfied through more obscure components of Base SAS (DDE, System functions, 'pipe' FILENAME access, x/DOS commands), and through code-writing macros (custom output 'drivers'), that allow SAS to interact with other applications. This paper introduces the Windows Scripting Host (WSH) as a simple, powerful, and comprehensive tool for meeting all of the requirements listed above |
proc sql, excel, txt, dataset, create table, connection string, data step, sas output, proc step, macro variable, sas programmer, raw data, sample | source | 10 |
| 36 | An Introduction to SAS Character Functions (Including Some New SAS9 Functions) | Ronald P. Cody | character variable, substr function, compress function, character functions, input statement, length statement, verify | source | 15 | |
| 37 | An Introduction to SQL in SAS | Pete Lund - SC | SQL is one of the many languages built into the SAS System. Using PROC SQL, the SAS user has access to a powerful data manipulation and query tool. Topics covered will include selecting, subsetting, sorting and grouping data--all without use of DATA STEP code or any procedures other than PROC SQL |
group by, proc sql, where statement, order by, select, proc step, create table, dataset, missing value, proc sort, sas output, if-then-else | source | 22 |
| 38 | An Introduction to the Simplicity and Power of SAS/GRAPH | Daniel E. Bruns | bar chart, proc freq, vertical bar chart, proc step, proc gchart, proc gplot | source | 19 | |
| 39 | Analyzing Incomplete Binary Repeated Measures Data Using SAS | Bin Yang | This paper presents a case study in longitudinal data analysis where the goal is to estimate the efficacy of a new drug for treatment of MDD. Data characteristic indicate: 1. Subjects from different treatment groups drop out differentially across time. 2. There are a high proportion of subjects who never experience any response. To overcome these challenges, we developed a logistic random-effects model with random intercepts. While the model is specified conditionally on subject random effect variable, we also draw inferences on population-averaged important to the assessment of the treatments' efficacy in a population. Specifically, we present and describe using SAS PROC NLMIXED and %GLIMMIX macro to fit the logistic random- effects model. Key Words: binary; longitudinal; random effect; PROC NLMIXED; %GLIMMIX |
proc mixed, logistic distribution, likelihood function, proc nlmixed, proc step, random intercept, clinical trial, binary variable, estimate, covariance, logistic regression, repeated measures | source | 8 |
| 40 | Applying Microsoft Word Styles to ODS RTF Output | Lauren E. Haworth | With the Output Delivery System, PROC TEMPLATE can be used to create Rich Text Format (RTF) output with elaborate formatting to meet specific business needs. When the results are opened in Microsoft Word, the output has exactly the fonts, sizes, weights, and borders that were specified. However, the output must be inserted into another Word document, this can all fall apart. An existing Word document uses Word styles to identify titles, headings, tables, and body text. When a SAS-generated table is pasted in, it is assigned the Word style "Normal". As a result, most of the custom ODS formatting is lost, and the output does not display properly. The secret to solving this problem is to insert RTF tags for Word styles into the ODS output. Then when the results are pasted into another document, the styles are pre-applied, so the Normal style is not needed. The output maintains its original formatting |
ods rtf, proc step, output delivery system, proc template, proc report, title statement, sas output, sample | source | 9 |
| 41 | Are You Ready to Roll? SAS9 Implementation Lessons Learned | Tim Walters | No doubt, over the past year, you've been eyeing that shiny new SAS 9 Business Intelligence Architecture and kicking its tires. You're probably learning more about its robust, enterprise architecture design, highly tuned engine for parallel processing, great handling around data management bumps and curves, as well as the new management console that allows your pit crew to keep the architecture in the never-ending race to provide excellent decision support. You also may have noticed the new reporting dashboard that greatly enhances your users' driving experience. If you are in the initiation or planning phase of your SAS 9 ETL Server installation, we can offer some guidance that may be of use | data cleaning, raw data, surrogate key, business intelligence, natural key, fact table, metadata management, lookup | source | 7 |
| 42 | Arrays Made Easy: An Introduction to Arrays and Array Processing | Teresa Schudrowitz, Steven J. First |
Many programmers often find the thought of using arrays in their programs to be a daunting task, and as a result they often shy away from arrays in their code in favor of better-understood, but more complex solutions. A SAS array is a convenient way of temporarily identifying a group of variables for processing within a DATA STEP. Once the array has been defined the programmer is now able to perform the same tasks for a series of related variables, the array elements. Once the basics of array processing are understood arrays are a simple solution to many program scenarios. Throughout this paper we will review the following array topics: 1) Why do we need arrays? 2) Basic array concepts a) Definition b) Elements c) Syntax d) Rules 3) Using array indexes 4) One dimension arrays 5) Multi-dimension arrays 6) Temporary arrays 7) Explicit vs. implicit subscripting 8) Sorting arrays 9) When to use arrays 10) Common errors and misunderstandings |
data step, array, temporary array, numeric variable, array bounds, variable, character variable | source | 9 |
| 43 | ASP.NET and SAS?A New Model for Developing Web-based SAS System Applications | Graham G. Murray | Microsoft has invested heavily in the .NET architecture as its vision for the future of the Windows platform. One of the primary components of this 'big idea' is the ASP.Net Framework. SAS System features can be utilised from within ASP.Net applications through the SAS Integration Technologies product and this paper sets out how to make full use of the power of the SAS System using ASP.Net and related technologies such as ADO.NET, XML and 'Web Services'. Enabling technologies, development environment options and system requirements for building web- based SAS applications will be described and a possible 'development architecture' will be outlined. The paper will build on the a Reports Quick Start sample provided at http://www.asp.net and describe how the freely available Web Matrix ASP.Net development tool can be used to quickly build SAS System applications | web service, sample, sas base, in=, stored procedure, sas 9, dataset, proc sql | source | 8 |
| 44 | Automatic Parameter Checking | Greg Silva | Much of applications development involving the SAS system involves macros. The most useful are parameter driven. By giving the user choices, the power of the application can be greatly extended. The problem for the developer is keeping track of the parameters and their acceptable values. This paper will show that by using standards parts of the SAS system and developing standard naming conventions, the developer can be relieved of the burden of checking parameters | macro parameter, macro variable, macro definition, %if-%then-%else | source | 4 |
| 45 | Automatically Process a Varying Number of New Data Files from a "Data Directory" | Michael A. Raithel | Imagine a situation in which you are sent dozens of new data files, by a varying number of users, which must be processed on a daily basis. Perhaps the users are at other locations and are FTP-ing the data files to a designated " data directory." Perhaps the users are within your organization and are writing the data files from other operating systems to a data directory allocated via a Samba share drive. Perhaps the users are all on a shared server within your organization and are writing new data files to a data directory on the same system. Whatever the case, this scenario usually generates a lot of maintenance to the SAS program that processes the data files. When new users are added, you must modify your program to allocate and process their specific files. When users are removed, you must modify your program so that it does not attempt to allocate and process their data files | dataset, macro definition, filename statement, libname statement, flat file, production run, proc sql, sas log, macro variable, proc step, macro call | source | 11 |
| 46 | Automating Predictive Analysis to Predict Medicare Fraud | Christine L. Warner | Medicare fraud is a reality despite efforts to prevent and detect fraud and abuse. "On February 21, 2002, the HHS-OIG reported its finding that of the $191.8 billion in such [Medicare] claims paid in 2001, 6.3 percent-amounting to $12.1 billion- should not have been paid due to erroneous billing or payment, inadequate provider documentation of services to back up the claims and/or outright fraud (National Health Care Anti-Fraud Association)." In response to this growing problem, our team of data miners was tasked with identifying Medicare fraud using SAS software. One approach to detecting potential Medicare fraud is to identify providers who make significantly more money than their peers, a process that requires predictive analysis. We decided to use SAS to predict how much each provider should be making based on a number of factors such as: patient volume, what they do (procedures), where they work (place of service), and who they treat (beneficiary factors) | proc step, regression analysis, macro variable, outlier, predictor variable, feature selection, cluster analysis, proc reg, data mining, proc score, missing value, standard deviation, feature engineering, proc transpose, automatic variable, sas base | source | 9 |
| 47 | Automating the Drudgery Away: Using Macros and ODS to Produce (Almost) Complete Reports | Phil Rhodes | The mission of the Office of Institutional Research and Testing (IRT) at Baylor University is to conduct research in order to provide information which supports institutional planning, policy, and decision making. As part of that mission, IRT produces approximately 75 research-related reports each year, along with several hundred ad hoc reports about prospective students, enrolled students, faculty, and staff. Six of the most important of these reports are the annual profiles of the student body, produced each fall. Previously, these reports were generated on a mainframe and the output printed. The data for the tables in each report was then manually entered into a Microsoft EXCEL template. This was a tedious and error-prone process, requiring five staff members many hours of data entry and proofreading. This paper will describe the steps taken to streamline the production of these reports using the SAS Macro Language and ODS |
macro variable, proc tabulate, proc step, macro facility, macro definition, demographics table, excel, %if-%then-%else | source | 5 |
| 48 | Automation of Clinical Trial Laboratory Data Acquisition Using SAS and DDE | Balakrishna Dandamudi | Clinical SAS programmers receive clinical trial laboratory data from external sources, such as centralized laboratories, in non-SAS file formats e.g., EXCEL workbooks. Before beginning production data transfer, one needs to complete a test transfer to verify the completeness and accuracy of the data transfer. Once the test transfer is successful, the transfer of production data begins. There may be one transfer or multiple transfers, depending on the clinical trial. This paper discusses an approach in building and using specialized SAS program modules in order to automate the process of reading clinical laboratory data from an EXCEL workbo ok into SAS using SAS/BASE and DDE . This approach minimizes the manual intervention. In particular, this paper will detail a program that can read ily be modified to create laboratory data sets, normal range data sets and formats catalog, based on the specifications and data provided in an EXCEL workbook with multiple data sets found in multiple EXCEL sheets. DDE is a viable option for importing or exporting data to or from MS EXCEL for those users who prefer to use SAS/BASE only |
excel, xls, call execute, laboratory data, dataset, proc sql, clinical trial, proc step, proc format | source | 12 |
| 49 | Automation of Code Leads to a Vacation for You: Enabling and Disabling Table Constraints in an Oracle Table with SAS X Commands | David Steves, Denise A. Figliozzi |
SAS X Commands are the answer! Loading SAS data into Oracle tables can be executed in a batch process. When loading a large amount of data (that we know is correct) to the Oracle table, it is wise to disable the foreign key constraints for time efficiencies. After the load has completed, the constraints must be re-enabled. This can be accomplished by using the PL/SQL Procedure, CONTROL_FKEYS. But the question remains - how can SAS invoke this PL/SQL code automatically? Again I tell you: SAS X Commands are the answer! This paper will detail the necessary process of executing the SQL scripts from a SAS batch job. It is always in your own best interest to automate code as fully as possible. This way, you can leave the office and head out for vacation! |
proc sql, foreign key, key, alter table | source | 5 |
| 50 | Behind the Scenes at SAS-L | F. Joseph Kelley | random number generation, sample | source | 19 | |
| 51 | Benchmark Dose Estimation Using SAS | Matthew W. Wheeler | Toxicologically-based quantitative risk asse ssment is concerned with estimating human risks based upon experimental data li nking an environmental agent to a known outcome (tumor incidence, acut e toxicity, etc.). For dichotomous outcomes dose-response curves are modeled as complex functions of dose which often require specialized software to estimate. The SAS PROCEDURE NLMIXED readily allo ws for maximum likelihood estimation of binomial response data to any non-linear function. This power gives the SAS system the ability to fit dichotomous respons e curves that have traditionally been modeled using specialized software. Fo r this paper excess risk is estimated within SAS using NLMIXED and the SAS MACRO programming language. Nine dose-response curves are fit examinin g the excess risk associated with renal tubular degeneration in ethy lene glycol exposed rats. T he results are compared with those given using the USEPA Benchmark Dose Softw are |
likelihood function, confidence interval, maximum likelihood estimation, macro definition, confidence level, macro variable | source | 9 |
| 52 | Benchmarking Character String Replacement | Bruce F. Gilsen | character variable, proc freq | source | 10 | |
| 53 | Best Practices in Enterprise Data Management | Gary Mehler | The powerful SAS9 Enterprise ETL Server platform has support for multi-user, multi-server and multi-level deployments. This paper discusses best practices for planning, implementing, and deploying a production end-to-end data management environment to support intelligence initiatives across an enterprise. In addition, considerations for advanced data management and high-performance computing are covered | flat file, data governance, etl developer, dataset, txt, proc step, sample, lookup | source | 14 |
| 54 | Boost Your Programming Productivity with SAS Enterprise Guide | Chris Hemedinger | SAS Enterprise Guide (with its easy-to-use interface) has been a boon to SAS users, especially non-programmers. However, SAS Enterprise Guide provides some powerful new features that are geared toward the SAS programmer, including an integrated process-flow view of your project; the ability to create, publish, and execute stored processes; and increased flexibility for output format and des tination with the SAS Output Delivery System (ODS). This paper provides an overview and detailed examples of how SAS programmers can leverage SAS Enterprise Guide to create, organize, and execute their SAS programs |
sas enterprise guide, sas enterprise guide project, macro variable, sas programmer, sas programming, bar chart | source | 9 |
| 55 | Budget Living with Pseudo ETL: Creating Your Own ETL Tool through SAS | David Steves, Denise A. Figliozzi |
In today's world data processing needs to run faster, better, and more efficiently. The push for the latest data is evermore important and can be facilitated through the use of an ETL tool. The acronym ETL stands for extraction, transformation, and loading. Companies evaluate different ETL tools to purchase. But, is it truly necessary? Your company may already have some of the basic SAS components that you can use as an ETL tool. This paper will go over three components of the ETL (Extraction, Transformation, and Loading) and illustrate which SAS components can be utilized | dataset, proc step | source | 4 |
| 56 | Building a Data-Driven Computer Assisted Interview Using SAS/AF | Derek P. Morgan | Creating a respondent-usable survey using the SAS System involves a large amount of developer time using traditional SAS System methods of data capture with an end-user interface, since it is directly linked to the size of the survey. In such an environment, each survey has to be custom-built and coded. This method was developed to bypass that and other obstacles related to end-user data capture. This method uses SAS datasets to implement program control, as well as provide questions and responses. A fixed series of SAS/AF frames interact with the user, yielding a consistent user interface. The frame code does not change between surveys-the datasets do. However, if the user needs to create a custom frame to handle the administration of a particular question, it is easily integrated into the existing method. This method was initially developed in order to administer the diet history questionnaire (DHQ). The DHQ is a food frequency questionnaire developed by staff at the Risk Factor Monitoring and Methods Branch of the National Institutes of Health. It consists of 124 food items and includes both portion size and dietary supplement questions. The 124 food items comprise 404 questions with extensive skip patterns. However, there was no instrument available other than a paper form to administer this questionnaire. Traditional data entry methods using SAS/FSP or SAS/AF would have required a disproportionate amount of programming resources. This paper will use the prototype application to illustrate the development of the method and its basic features |
where statement, data governance, missing value | source | 19 |
| 57 | Calculation of the Kappa Statistic for Inter-Rater Reliability: The Case Where Raters Can Select Multiple Responses from a Large Number of Categories | Catherine R. Stein, Raymond B. Devore, Barbara E. Wojcik |
A common measure of rater agreement where outcomes are nominal is the kappa statistic (a chance-corrected measure of agreement). You can use PROC FREQ to calculate the kappa statistic, but only if the given frequency table is square (that is, raters used the same categories). In most rater analyses involving nominal outcomes, a rater assigns a single response based on a small number of categories (usually fewer than 10). What if for each observation raters were able to select multiple responses (with, for example, one having 5 responses and another having 8) from a very large number of categories (approximately one thousand)? This paper shows you how to obtain the kappa statistic using PROC FREQ in BASE SAS when raters select multiple responses from a large number of categories. The discussion is intended for users of all skill levels |
cohen's kappa, proc freq, proc step, sample | source | 8 |
| 58 | CALL EXECUTE: A Powerful Data Management Tool | Denis Michel | There are often data management challenges that require automation of code generation as the optimal solu tion. The SAS System is rich in tools that provide for automated code generation, including the macro facility and the CALL EXECUTE routine. After using CALL EXECUTE to solve some specific tasks, the routine becomes an indispensable tool to the programmer for solving general problems. This paper describes how to use CALL EXECUTE, presents some caveats about the use of the routine, and provides programs that perform specific data management tasks by using CALL EXECUTE to generate SAS statements | call execute, proc step, proc print, create table, libname statement, proc compare, sas log, label statement, adverse events, macro variable, call symput, sample, data governance, serious adverse event, proc report, title statement, lookup, character variable, proc sql, data step | source | 13 |
| 59 | Catch the Stream: Stored Processes, ODS, and Java | Jeff Wright | Wouldn't it be great if there was a straightforward way of taking SAS programs and making their output available on demand via a web browser? Sure, you probably know that you can use ODS to format SAS output as static HTML pages that can be copied to a web server, but what if your program uses data sources that change every day, or every hour? Building on demand, web-based reports via SAS potentially requires an array of technologies ranging from HTML to web programming to SAS to databases. Some approaches require one programmer to master all these skills, but stored processes bring an appealing division of labor to this picture. A stored process is just a parameterized SAS program that is callable via the SAS Integration Technologies Integrated Object Model (IOM) API. By encapsulating SAS logic in this way, the SAS programmer and web developer can each focus on the areas they know best |
sample, filename statement, sas log, sas programmer, macro variable, macro definition | source | 11 |
| 60 | Combining Decision Trees with Regression in Predictive Modeling with SAS Enterprise Miner | Kattamuri S. Sarma | The purpose of this paper is to illustrate how the Decision Tree node can be used to optimally bin the inputs for use in a logistic regression. Binning can be viewed as a complex non-linear transformation of the inputs. By utilizing this technique, we may be able to capture complex non-linear relationships between an input variable and the target variable. Univariate trees are created by using the Tree node with one input at a time, resulting in an optimal binning of the input. The SAS code generated is used to create transformations of the original inputs. The binned variables are then used in a logistic regression. The paper shows how this can be done using the GUI of the Enterprise Miner and also using the underlying procedures in a batch mode | feature selection, proc hpsplit, data mining, logistic regression, regression analysis, logistic distribution, proc freq, data cleaning | source | 10 |
| 61 | Combining SAS Text Miner with the Association Node in SAS Enterprise Miner to Investigate Inventory Data | Patricia B. Cerrito | Association rules are developed particularly using records of purchases to increase sales. However, when the inventory is large, the number of items can overwhelm relatively modest servers, requiring considerable investments in hardware. The number of items also suggests that the strength of any association will be low. Inventory items that are similar generally have similar sounding names. While the inventory codes are sometimes developed to indicate broad classes of items, it is not always possible to do so. For example, cereal in a grocery store has only a handful of categories that are too broad for association purposes. The names of items, however, can be used with the Text Miner Node prior to use with the Association Node. The combination of analyses will be used with an almost unlimited inventory of items that are used to treat patients in a hospital ER. Over a 3-month period there were almost 500 different items used for approximately 3000 patients, and almost 30,000 items charged to patients. The number of items and charges overwhelmed a Xeon dual-processor with 4 gig of RAM. The combination of text analysis and association rules can give very powerful results, in a manageable combination of hardware | association rules, data mining | source | 10 |
| 62 | Comparing the SAS Forecasting System with PROC HPF and SAS Enterprise Miner | Patricia B. Cerrito | SAS has now developed multiple methods for investigating time series data. This includes the ETS forecasting system, the time series node in Enterprise Miner (version 5.1), and the recently developed HPF (high-performance forecasting). It is the purpose of this paper to compare and contrast the different methods while demonstrating their use. The aim of these methods is to create accurate forecasts that can be used in business and industry for budgeting purposes. In this paper, one time series example will be explored in detail using the various time series methods. Differences and similarities in methods will be examined. Forecasts will be compared and contrasted | time series analysis, seasonality, moving average, data mining | source | 9 |
| 63 | Configuring J2EE Application Servers for Use with the SAS9 BI Platform | John R. Roth | Using planning files, the SAS Software Navigator, and the SAS Configuration Wizard, you are guided through a series of steps that enable you to quickly install and configure the SAS9 Business Intelligence Platform. This process includes installing and configuring third-party J2EE application servers and deploying SAS Web applications. While this process gets SAS software up-and-running quickly, there are many additional configuration considerations needed in order to provide a robust, scalable, and secure middle-tier environment. There are many best practices recommended in vendors' product documentation, in books, and from online resources, but how do you know which recommendation is best for configuring application servers for use with the SAS BI Platform? This presentation explores some steps that you will probably want to take to be able to provide a robust, scalable, and secure middle- tier environment | business intelligence, memory usage | source | 16 |
| 64 | Connecting Simply with SAS/CONNECT | Michael G. Sadof | Since it is common to have data residing across several platforms, it is important to utilize the strengths of each computer system. SAS/CONNECT Software enables you to view and update your data on multiple platforms from any one connected computer. This paper provides some quick and easy code to get your SAS/CONNECT applications up and running smoothly. With only a few simple statements you can manipulate your UNIX or mainframe based data from your PC environment without batch processing. Similarly you may submit and run UNIX SAS programs from an MVS batch job. The data may actually reside on either platform. With business or research data residing on various platforms the SAS system utilizes the client server model to access the data wherever it resides. SAS/CONNECT Software is one tool for us to view, edit, manipulate or copy data from one platform to another. The SAS/CONNECT software must be installed on each platform |
proc step, proc download, filename statement, libname statement, dataset, proc upload | source | 10 |
| 65 | Contrasting Programming Techniques for Summarizing Voluminous SAS Output Using the SAS Output Delivery System (ODS) | Stuart D. Long | SAS ODS provides programmers w ith the ability to extract selected information from a procedure and store it in datasets. Such datasets can then be combined to summarize the re sults from numerous procedures. The SAS Macro facility can be used to execute and extract information from repetitively called SAS procedures. "Macro Variable Arrays" can simplify the extraction of information from SAS procedures when identical or similar code is executed repeatedly on a mult itude of datasets and/or vari ables. This paper describes Macro Variable Arrays and contrasts these with other programming methods to obtain summary datasets from ODS output. Although PROC F REQ is used in this paper, these te chniques can serve as a blueprint for extracting and summarizing output from other SAS procedures. T his is an advanced tutorial intended for SAS programmers knowledgeable with the SAS Macro facility |
proc freq, macro variable, proc step, call execute, do loop, confidence interval, data step, macro definition, macro call, out=, macro loop, macro facility, conditional do loop, odds ratio, relative risk, sas output, output delivery system | source | 17 |
| 66 | Creating a Numeric Format to Suppress Small Numbers | Michael G. Eberhart | SAS provides various numeric formats to present data in reports and tables. SAS does not provide a numeric format that allows for the suppression of small numbers, as is often required when presenting public health data. Creating a new format with PROC FORMAT can be tedious and time consuming when a wide range of numbers is required. This program describes a method to create a new "numeric" format that can be used to replace specific numbers with an asterisk when generating reports |
data step, proc format, format statement, proc step | source | 3 |
| 67 | Creating and Using SAS Stored Processes with SAS Enterprise Guide | Eric Rossland, Kari Richardson |
This hands-on workshop shows how to use SAS Enterprise Guide to create and use SAS stored processes. In particular, you will learn how to create a new project, run an existing stored process, and stream the results back to SAS Enterprise Guide add an existing SAS program to the project and use it to create, register, and test a new stored process * add a data source to the project, run a task against i t, and create, register, and test a new stored process based on that task | sas enterprise guide, proc freq, macro variable | source | 20 |
| 68 | Creating Bar Charts and Scatter Plots Using the SAS GPLOT Procedure??Both on the Same Page? It Is Easier Than You Think! | Rita Tsang | The SAS GPLOT and GCHART procedures are powerful tools for generating graphical displays of clinical data. These two procedures, GPLOT and GCHART, are usually employed to create scatter plots and bar charts respectively. However, we often need to display both a scatterplot and a bar chart within the same graph. The GCHART procedure cannot generate scatter plots and it does not have the ability to superimpose graphical displays. How can we get around this limitation? This paper will delineate a program that generates a graphical display of a scatter plot superimposed on a bar chart by using the GPLOT procedure, which proves generating complicated graphical displays in SAS can be done by using simple Data steps! |
bar chart, scatter plot, data visualization, proc gplot, clinical data | source | 4 |
| 69 | Creating Complicated Word Documents from an Intranet Application | Frank Poppe | For the sales organization of a large pharmaceuticals company we developed an intranet application with SAS/INTRNET giving an overview of several performance indicators. Some cover sales of key products; others address the activities of the sales reps who call at doctors' offices and pharmacies. The application users come from all levels: sales reps, managers, and vice presidents. The indicators shown on screen partly depend on their role and will sometimes reflect individual scores or alternatively suitable team aggregates. Within the application users can choose between products, between teams, and between geographical levels, limited by their role. All users can activate the "Word export" function. The information from all screens that can be reached within the choices in effect will be sent to output in RTF format, sent to the browser, and displayed in Word. The created document contains "boxes" where the users can enter comments and evaluations |
proc report, proc step, macro variable, where statement, ods html, file statement, ods rtf, proc greplay | source | 9 |
| 70 | Creating Flexible Graphics with the DATA Step Graphics Interface (DSGI) | Hui-Ping Chen | SAS PROC (procedure) is not the only vehicle for creating graphics. DATA STEP Graphics Interface (DSGI) combines the functions of GSLIDE, GREPLAY, and Annotate facility and enables you to generate graphic output within DATA STEP; not only can DSGI generate graphics faster than Annotate facility, but it also provide more flexibility than GSLIDE and GREPLAY, while working on customized graphics |
txt, proc step | source | 10 |
| 71 | Customer Segmentation by Using CALL SYMPUT, Arrays, and DO Loops | Rodger Zhang | Customer grouping or segmentation is a common task in the financial sector. Some customers might have only one product while others might have multiple products. Identifying customers with correct products will help you improve your business in areas such as cross selling. SAS offers many ways not only to customize your financial reports but also to effectively put your customer in the right position. This paper will focus on how to check the maximum number of products one customer can have and how to apply that information to your reporting by using the CALL SYMPUT statement. You can use the CALL SYMPUT statement to create a macro variable that is assigned the value of a variable from a data set and transpose the data with efficient and powerful arrays and the associated DO loops facility. Base SAS is used and the examples shown are sample data only. This paper is for the beginner or intermediate SAS programmer | automatic variable, by group processing | source | 7 |
| 72 | Customizing ODS Statistical Graphics | Shi-Tao Yeh | SAS 9.1 includes an experimental feature, ODS Statistical Graphics (ODS Graphics for short), which introduces more than 30 procedures in four SAS products. This new feature enables the procedures to create statistical graphs automatically as part of ODS output. With simple ODS Graphics statements, a procedure creates graphs that are commonly needed for data analysis. The default ODS Graphics provide informative graphs with important statistics printed alongside. Unfortunately, the default ODS Graphics are not suitable for the study reports, publications, or New Drug Application (NDA) submissions. A typical challenge is that the ODS Graphics are missing study specific titles and footnotes. To resolve this issue, the modification of default ODS Graphics is necessary. ODS Graphics appearances are governed by the ODS Graphical Template Language (GTL) |
sample, proc step, data science, hazard function | source | 17 |
| 73 | Customizing ODS Statistical Graphs | Cynthia L. Zender, Catherine Truxillo |
Have you heard about ODS Graphics or seen some of the demos? If you are a statistician interested in obtaining easy graphics from statistical procedures, ODS Graphics features provide an automated way of exploring statistical results with a picture. However, if you are a SAS programmer interested in customizing the plots automatically produced by ODS Graphics, you can benefit from an understanding of the graph and style templates that SAS provides for these plots, especially to make changes that persist from one application to the next. Follow the authors on a journey of discovery with ODS Graphics, as they explain how to access and modify graph templates. By the end of the presentation, which includes code samples and demos, you will have a better understanding of the relationship between statistical procedures, graph templates, style templates, and DATA _NULL_ programs. The authors take you through every step of their discovery process |
proc princomp, proc step, proc template, macro variable, ods html, sas log, proc sgplot, graph template language, title statement, sas programmer, select, output delivery system | source | 22 |
| 74 | Data Profiling: Designing the Blueprint for Improved Data Quality | Brett Dorr, Pat M. Herbert |
Many business and IT managers face the same problem: the data that serves as the foundation for their business applications (including customer re lationship management (CRM) programs, enterprise resource planning (ERP) tools, and data warehouses) is inconsisten t, inaccurate, and unreliable. Data profiling is the solution to this problem and, as such, is a fundamental step that should begin ever y data-driven initiative. This paper explores how data profiling can help determine the structur e and completeness of data and, ultimately, improve data quality. The paper also covers the types of analysis that data profiling can prov ide as well as how data profiling fits into an overall data management strategy | data profiling, data validation rules, data warehouse, data cleaning, proc freq, outlier, mortgage, data governance, missing value, dataset | source | 10 |
| 75 | Data Sets and Variables and Labels, Oh My! | Myra A. Oltsik | It might seem a daunting task when one is faced with reading in several files containing hundreds of variables, all of which need to be renamed. Imagine, then, how frightening it might be to received 48 files with over 20,000 variables, all of which need to be renamed with meaningful names! There's no reason to be afraid with good documentation, organization, and a robust macro. This paper will help you set up a program which will let you read in multiple files with large numbers of variables in an efficient, quick manner | proc step, macro definition, excel | source | 8 |
| 76 | Data Step Hash Objects as Programming Tools | Paul M. Dorfman, Koen Vyverman |
In SAS Version 9.1, the hash table - the very first object introduced via the DATA STEP Component Interface in Version 9.0 - has become robust and syntactically stable. The philosophy and application style of the hash objects differs quite radically from any other structure ever used in the DATA STEP previously. The most notable departure from the tradition is their run-time nature. The hash objects are instantiated and/or deleted and acquire memory, if necessary, at the run-time. It is intuitively clear that such traits should make for very interesting and flexible programming having not seen in the DATA STEP code of yore. Although some propaedeutics will be provided in the paper, the talk is intended for SAS programmers already somewhat familiar with the basic ideas and syntax behind the hash objects |
hash table, hash iterator, composite key, length statement, data step, dataset | source | 21 |
| 77 | Decision Tree Validation: A Comprehensive Approach | Sylvain Tremblay | Ever since the availability of data mining tools, decisi on trees have been popular because they are simple to use and easy to interpret. Producing decision trees is straightforward, but evaluating them can be a challenge. In predictive modeling, overfitting is always a danger. A good decision tree must generalize the trends in the data, and this is why the assessment phase of modeling is crucial. SAS Enterprise Miner is the SAS data mining solution. The Results window for the SAS Enterprise Miner Decision Tree node lets you visualize the tree and examine diagnostic plots and statistics. However, these components can only be viewed separately, making it harder to study the tree at varying levels of details. To extend the capabilities of the Tree node, SAS released the Tree Resu lts Viewer. The Tree Results Viewer is a stand-alone Microsoft Windows application that significantly enhances SAS Enterprise Miner output. It can also be invoked from SAS Enterprise Miner 3.0 or later | data mining, training set, data cleaning, validation set, proc hpsplit, bar chart | source | 8 |
| 78 | Designing a Global SAS9 Architecture for Clinical Trials Analysis and Reporting | Gregory S. Barnes Nelson, Michael Walega |
Covance has a long tradition of utilizing SAS to analyze pre-clinical and clinical trails data, as drug candidates move from early discovery to late stage development. To continue to add value to shareholders, Covance has constantly looked to identify ways to fully leverage its global workforce and to maximize hardware and software toolsets. The goal: deliver high quality clinical trials reporting and analytic results to clients in an efficient and timely manner. Covance commissioned a study to evaluate their business processes relating to how they utilize SAS, to identify better ways to bring value to their clients, while keeping an eye on how SAS9 could solve problems of today and for the future. This presentation outlines the challenges that Covance has faced, along with a high level overview of what was done to create a new global SAS architecture that will result in a balanced, upgraded and technologically competitive SAS environment for Covance | sas enterprise guide, sas 9, sas base, clinical trial, raw data | source | 12 |
| 79 | Drilling Down on Web Usage: Custom Applications of SAS Web Analytics | Carol Kassel | Columbia University was one of the first large institutions to begin using WebHoundTM (now SAS Web Analytics), a web usage statistics package that runs on top of base SAS. We licensed it in order to answer some questions we had about usage of some of our websites. Since that time, as our understanding of the software increased, we discovered that we could customize it to answer more involved questions. Some of our custom applications of this solution include: understanding where users went from the Columbia home page and changes in this pattern after a redesign; combining this information with an analysis of searches from the home page to help users find areas of interest quickly; providing reports to subscribers of Columbia databases to inform them of their constituents' usage, and making these reports conform to specific standards; and providing site- specific custom reports to requesting groups on campus on an as-needed basis | dataset, sas base | source | 9 |
| 80 | Dynamic Load Balancing for ETL in SAS9 | Frank Pecjak | SAS ETL Studio 9.1 provides you a convenient, workflow based interface, to efficiently move data across disparate data sources. The flexibility of the interface and the ease with which you can add code make ETL Studio a robust ETL solution that can solve a wi de variety of data movement issues. As the size of a dataset increases, the scalability of a particular load task becomes a critical issue. Typical approaches to resolving scalability issues include breaking up datasets into multiple jobs, parallelizing tasks across multiple servers and potentially running the job on more powerful machines. The goal of this paper is to identify the advantages and disadvantages of the tuning options available through ETL Studio | macro variable, dataset | source | 5 |
| 81 | E-Mail z/OS SAS/MXG Tape Management Reports with ODS Traffic Lighting | Neal Musitano Jr. | This paper displays an e-mailed tape management report with " Traffic Lighting" using the BASE SAS Output Delivery System (ODS). The report is created and e-mailed via a z/OS batch job using the BASE SAS JCL procedure. E-mail reports with ODS traffic lighting can be generated from your choice of input data. The input data for this example is from the daily SAS/MXG Performance Database PDB.TAPES, The tape management e-mail report with ODS Traffic Lighting in red, yellow and green colors is generated as an HTML file using the BASE SAS Output Delivery System (ODS) and PROC PRINT. Reports can also be generated via other procedures such as PROC REPORT |
proc step, proc print, sas base, output delivery system, management reporting, proc format | source | 6 |
| 82 | Effective Project Management of SAS Projects: Adapting the PMI Framework | Gina Davidovic | Many studies have shown that a significant reason for the failure of business intelligence projects is not failure of the technology, but rather inappropriate project management including lack of integration, lack of communication and lack of clear linkages to business objectives and to benefits achievement. Many best practices have evolved to help project teams deal with these issues. One such standard or guide is the Project Management Institute's "Project Management Body of Knowledge," or PMBOK. In this paper, we will explore the application of the Project Management Institute's PMBOK Guidelines to projects that use SAS Software to deliver business intelligence, CRM or other related types of complex cross organizational business initiatives that are commonly highly iterative. This paper is designed to meet the interests of both information technology professionals and business representatives | business intelligence, likelihood function | source | 9 |
| 83 | Efficiency Considerations Using the SAS System | Richard D. Langston | There are many products being released by SAS Institut e that either use an abundance of SAS code, or generate SAS code, or both. We have begun an internal process to assist product developers in reviewing this SAS code for issues of efficiency, host compatibility, performance, and so on. We also realize that these issues are of interest and benefit to all SAS programmers. This paper is a collection of some of our initial performance analyses in writing efficient SAS code | cpu time, proc step, proc sort, if-then-else, proc sql, put statement, where statement, hash table, order by, select, when, sas programmer, subsetting if, sum | source | 12 |
| 84 | Empirical Power for Higher-Order Crossover Designs in Comparative Bioavailability Clinical Trials | Jihao Zhou, Bruce Coate |
A standard 2x2 crossover design has been widely used in drug clinical trials, but it is not optimal because of some undesirable statistical properties such as the low power to test carry-ov er effect. Higher-order crossov er designs address this defficiency and, theref ore, have drawn more attention recently. Howev er, exact power calculation of higher-order crossov er designs poses difficulity f or users. It requires sophisticated numerical integration, and it is not available in statistical software packages. This paper presents a SAS Macro to compute the empirical power for higher-order designs in comparative bioavailability clinical trials. The power curve and tables for higher-order crossover design with 2 sequences and 3 periods are presented. Keywords: Higher-order crossov er design, empirical power, comparativ e bioav ailability | sample, macro definition, proc step, monte carlo, clinical trial, proc mixed | source | 10 |
| 85 | End-to-End Web Reporting Using SAS Enterprise Guide 3.0: Who Does What and When | Marje Fecht, Peter R. Bennett |
SAS 9 and SAS Enterprise Guide 3.0 provide an array of powerful tools for analyzing data and generating the information that organizations demand to address their business needs. However, to exploit the new architecture, more functional roles need to be involved in the development process, which means that a clear understanding of the different roles and responsibilities at each stage of the process is required. This scenario-based tutorial takes you through the different stages of the process (security control via the SAS Management Console, SAS Enterprise Guide report development and deployment, end user access via the SAS Information Delivery Portal, SAS Web Report Studio, and Microsoft Office). The report(s) produced will be simple ones as the emphasis here is on the process and responsibilities involved | excel, sas enterprise guide, raw data, sample, sas administrator, proc step, correlation | source | 14 |
| 86 | Environments Needed for the Successful Deployment of a Data Mart/Warehouse | Mark G. Lucas | The University of Saskatchewan, Office of Institutional Analysis (IA) has embarked on the development of an institutional data warehouse using the following components of the SAS 8.2 product suite: Data Warehouse Administrator, SAS IntrNet, SAS/ACCESS, SAS/CONNECT, Base SAS on Solaris Servers and Windows desktops |
sql server, proc sql, sas base, dataset, excel | source | 5 |
| 87 | Estimation of Type III Error and Power for Directional Two-Tailed Tests Using PROC POWER | Cam-Loi Huynh | By imposing directional decisions on traditional two-tailed tests, you will overestimate power, underestimate sample size, and ignore the risk of Type III error. You can avoid these problems by using the directional two-tailed test. This paper demonstrates how to use PROC POWER to estimate the prospective power and Type III error for one-sample, two-sample and paired t tests for means, and binomial tests for proportions, using the directional two-tailed testing procedure. Examples are given with SAS codes accompanied by selected results. Power and Type III error for the directional two-tailed sign test with unknown direction is also discussed and illustrated with a SAS macro written by the author |
sample, proc power, sample size, proc step, null hypothesis, proc ttest, binomial distribution, alternative hypothesis, type i error, paired t-test, heteroscedasticity, correlation | source | 10 |
| 88 | ETL: The Heavy Lifting That Makes BI Possible | Ralph Kimball | raw data, data warehouse | source | 11 | |
| 89 | Everybody Loves SAS! They Just Don't Know It Yet | Denise A. Figliozzi, David Steves |
Believe it or not, there are people in this world that resist and avoid learning SAS unless absolutely necessary. (These are the non-technical people of the world and they like it that way.) I have had the pleasure of introducing SAS to some of the non-technical business analysts that work in my group. SAS can be cumbersome and intimidating to a user that has adapted to a point and click query software. Often these users have never programmed in any language before but now need to know BASE SAS to access the data for their analysis. This paper discusses training non-technical people how to use SAS and will suggest BASE SAS procedures (aka. procs) and handy SAS tips that an analyst should learn in order to get their job done. Procs and navigation (through SAS software) that are almost intuitive to a technical person need to be explained and introduced. At times, advanced programmers think they are explaining the basics. In reality, they have not gone back to the beginning concepts | proc step, proc download, proc freq, proc sql, excel, proc univariate | source | 4 |
| 90 | Expansion of Existing "Journal Club" to Include Internal SAS Training Sessions: Considerations for Establishing Internal SAS Training Sessions | Rosemary Kirousis, Stephen Kurtz, Paul Kelley |
Purpose: To share a working format for internal SAS training and user support Concept: Within any organization, one can create opportunities to share information and technical expertise. We have identified ten main considerations for establishing internal training sessions based on our experience of utilizing an existing monthly meeting as a format for internal SAS training: Determine the number of SAS users within your organization Establish a commitment from management that internal training is worthwhile Determine the skill level of current and potential SAS users Organize meetings on a set schedule Keep meetings short Pick a date and time that work for most SAS users' schedules Pick topics based on interest Present specific, work-based examples Find other resources for SAS information like SAS users' groups Create a common code library This paper generally refers to all SAS products and operating systems and is written for all skill levels | proc sql, macro definition | source | 3 |
| 91 | Explaining Unexpected Log Messages and Output Results from DATA Step Code | Debbie Buck - SC, Larry Stewart |
Everyone knows that you should always read the SAS log every time you execute a SAS program, especially if it includes a DATA STEP. When you read the log, do you ever find SAS notes or warnings that puzzle you? You know the ones like "The variable XYZ is uninitialized" or "The variable ABC in the DROP, KEEP, or RENAME has never been referenced." But when you look at your output everything seems to be okay. So what do those messages mean and should you be concerned? Do you submit DATA steps that produce no notes or error messages in the log, but the code produces unexpected results? For example, you write a basic IF/THEN statement to delete specific observations, but it deletes all the observations. If you answered yes to any of the questions above, then this might be the presentation for you. This presentation focuses on common unexpected notes in the SAS log and why they occur. It also addresses common logic errors in DATA steps that lead to unexpected results |
sas log, missing value, input statement, dataset, sas output, character variable, set statement, error message, if-then-else, length statement, proc print, proc step, sysdate9, format statement, put statement, subsetting if, character functions | source | 13 |
| 92 | Exploring DICTIONARY Tables and Views | Kirk Paul Lafler | SAS users can quickly and conveniently obtain useful information about their SAS session with a number of read - only SAS data views called DICTIONARY tables or DICTIONARY views . At any time during a SAS session , information about currently defined system options, libnames, table names, column names and attributes, formats, indexes, and more can be accessed and captured . This paper will explore the purpose of DICTIONARY tables and views, how they are accessed , and what information is available to SAS users. Attendees will learn how these important tables and views can be applied using real-world code examples | dictionary tables, proc sql, sas library, options statement, proc step | source | 6 |
| 93 | Extreme Graphics Make Over: Using SAS/GRAPH to Get the Graphical Output You Need | Miriam G. Cisternas, Arthur L. Carpenter |
Back in the days of the mainframe, creating presentation quality graphs was a challenge, but with the current versions of SAS/GRAPH customizing your graphical output can be quite easy. Easy that is, once you know which of the many graphical statements and options to use. This workshop will introduce you to those statements and options. Through a series of exercises we will show you how you can dress up your GPLOT graphs. You will quickly learn how to customize titles, footnotes, axes, and plotting symbols, as well as how to add reference lines, legends and notes to highlight specific messages in your data. You will also gain an understanding of how specific GOPTIONS and global statement options interact to create your finished product |
proc gplot, proc step, sas base, footnote statement, options statement, run, randomization | source | 16 |
| 94 | Extreme Web Access: What to Do When FILENAME URL Is Not Enough | Garth W. Helf | This paper shows you how to write an automated Web browser in SAS. One reason you might want to do this is to extract data from useful websites, so you can load it in to a data warehouse. SAS provides the URL access method to read HTML from web pages, but we will see why it won't work for many websites. Instead, we will use the SOCKET access method to perform the basic functions of a web browser. We will understand how a web browser works by learning about Hypertext Transfer Protocol (HTTP) - the standard technique for sending HTML over the internet. We will see how to use an HTTP viewer program like httpExplorer to observe the HTTP request sent to a web server and the HTTP response sent back to the browser, so that we can replicate the same communication in a SAS program. Finally, we will see how to handle some special cases, like Chunked transfer encoding | http, filename statement | source | 10 |
| 95 | Fast and Easy Ways to Annoy the Job Security Specialist | Richard M. Mitchell | While SA S pr ogrammers a nd statistici ans hav e b een s pending th eir days annoying eac h oth er with techniques tha t are often un ethical or just do wnright nasty, the job sec urity sp ecialist has qui etly s naked along under the radar. T he job sec urity specialist is one who is fe arful that others c ould potentially steal their prec ious SAS code a nd thus put the wheels i n motion for eit her the shiftin g of work or ev en replacement of his or h er position. Suc h behavior often leads to d ecreased productivity, dissatisfaction in the workplace, and prevention of an otherwise ver y capable an d com petent team of progr ammers from meeting their full potential. This paper will discuss fast and easy ways that both SAS programmers and SAS programming managers can reverse the table and have fun annoying the job security specialist | job security, sas programming, sas programmer | source | 10 |
| 96 | Frequently Asked Questions about SAS Indexes | Billy Clifford | Indexes in the BASE engine have been part of Base SAS since SAS 6. Over the years the use and mis-use of indexes has generated a number of questions from users. The answers to these questions might help you understand more about indexes and how they interact with other SAS components. This paper begins with an overview of index technology used by the BASE engine and how SAS uses these indexes. Then, a set of Frequently Asked Questions (FAQs) collected from customers, in-house users, and Tech Support is answered, along with the rationale for the answer | proc step, proc append, index, proc sort, index creation, constraint, sorted data, order by, foreign key | source | 11 |
| 97 | Generating Custom Report Tables: Using SAS with DDE and VBA | Ying Feng | As a testing company, we are required to present statistical information to our clients in custom tables. SAS is powerful for delivering statistical information, and Microsoft Office is excellent for formatting. This paper details how to link the two systems together and how to automate this process using DDE and VBA so that non-programmers can easily generate the custom tables. The process involves the following steps. First, statistical information is generated in SAS and exported to interim tables using PROC EXPORT. Then, an EXCEL template is created holding specially formatted tables to meet clients' requirements. Then, DDE capability in SAS is used to open the EXCEL template and execute VBA code, which is embedded in the template. The VBA code maps information from the interim tables to the template. Thus, professional-looking report tables are generated utilizing the strong data manipulation capability of SAS and the excellent formatting capability of Microsoft EXCEL |
excel, macro call, correlation, sas output, proc step, macro variable | source | 8 |
| 98 | Guidelines for Selecting the Covariance Structure in Mixed Model Analysis | Charles D. Kincaid | covariance, covariance structure, proc mixed, correlation, fixed effects, proc step, autocorrelation, compound symmetry, repeated measures, unstructured covariance | source | 8 | |
| 99 | HOLY MACRO! An Intuitive Approach to Understanding the Macro Facility | Michael J. Molter | The macro facility allows us to write macro code that instructs SAS how to generate the more familiar open code found in DATA steps and PROCs. With such a tool, we can consolidate families of related programs, execute the same piece of code repetitively, and develop applications for others to use. This replaces error-prone, high- maintenance jobs such as saving multiple versions of essentially the same program (with slight differences depending on the task) or excessive typing or copying and pasting. The best part is that most of the code is similar to what we find in open code. The key to understanding how the macro processor works is in understanding the differences - both in the code itself, and in the way the two types of code are processed. This theme will be emphasized throughout the paper. Discussion begins with macro variables, beginning with initialization and referencing, followed by other subjects such as functions, quoting, and combinations | macro variable, macro facility, macro definition, &variable, do loop, proc step, call symput, output, keyword parameter, %macro parameters, macro function, macro loop, macro conditional, title statement, proc sql, macro put, macro quoting function, set statement, macro parameter, if-then-else, subsetting if, footnote statement, numeric variable, proc tabulate, put statement, end, proc means | source | 20 |
| 100 | How Old Am I? | Deb Cassidy | Calculating age seems like such a simple task. All you need to do is make sure today's date and the birth date are stored as SAS dates, subtract the dates and divide by 365. Oops, what about leap years? Make that divide by 365.25. This formula does give you a "quick and dirty" answer but isn't exact enough for many applications. This presentation will show you other formulas for calculating age that can be more exact | source | 3 | |
| 101 | How to Get SAS Data into PowerPoint with SAS9 | David J. Bosak | The purpose of this paper is to describe three techniques of creating PowerPoint presentations from SAS. Two of these techniques are independent of SAS version. One of the methods is dependant on new features in SAS9. The paper will describe these techniques, and comment on the relative merits of each technique | excel, sas base, xls, proc step, dataset, output delivery system, proc sql, proc template | source | 12 |
| 102 | I'll Have the PROC TABULATE a la ODS Please, with a Table of Contents on the Side | Ray Pass | The advent of the Output Delivery System (ODS) in Version 8 (a ll right, it was really introduced in V7, but I still refer to V7 as V8 beta) of the SAS System is truly monumental in scope. It required rewriting all SAS procedures that produce output (not all do) and splitting out their "data components" from their "table definitions" (presentation format templates). We now have the ability to combine these compone nts into customized "output objects" and to send them to different output "destinations", including casting them as HTML pages. When we do use the HTML destination, we also have the ability to produce our main content output as one component frame of a multi-frame page, the other possible component frames being either procedure or page oriented Tables of Contents. Although there are methods for customizing the contents of the Tables of Contents frames, they still do take up valuable screen r eal estate |
proc step, proc tabulate, proc print, macro variable, ods html, title statement, dataset, output delivery system, raw data | source | 10 |
| 103 | Implementing Data Warehousing and Business Intelligence at McMaster University Using the SAS Intelligence Value Chain | Debbie Weisensee, Eric Matthews, Anne McInnis |
This paper covers the incremental development of an enterprise-wide data warehouse at McMaster University, along with the deployment of end-user, web-based query and reporting tools using SAS Value Chain Analytics. A goal of the initial data mart is to enable integrated reporting between the research funding and research financial databases. This integrated data is essential for managing, analyzing, reporting, assessing, and projecting performance at institutional, provincial, national and international levels. This paper will review the process followed in designing the warehouse, based on enterprise-wide information needs. In developing the research data mart, we have built a foundation that is portable and uses standard industry protocol. This will enable us to be flexible and cope with changes in both hardware environments and business information requirements | business intelligence, data warehouse, data mart, data standard, data cleaning, sas enterprise guide, data validation rules, proc sql, excel | source | 10 |
| 104 | Imputation of Categorical Variables with PROC MI | Paul D. Allison | The most generally applicable imputation method available in PROC MI is the MCMC algorithm which is based on the multivariate normal model. While this method is widely used to impute binary and polytomous data, there is a natural concern about the consequences of violating the normality assumption. Recent work by Horton et al. suggests that the practice of rounding imputed values for binary variables may produce biased estimates of proportions, but that still leaves many questions unanswered. This paper uses simulations to address several questions: How much bias is introduced if the imputed values are left unrounded? What factors affect the degree of bias? What effect do these choices have on bias in regression coefficients for binary variables that are predictor variables? The paper also compares the MCMC method to the more recently introduced methods of imputation based on a logistic regression model or a linear discriminant model, for monotonic missing data patterns |
imputation, proc calis, missing value, regression analysis, proc step, logistic distribution, estimate, proc mi, binary variable, sample, logistic regression, standard deviation, confidence interval, correlation, missing completely at random, proc mianalyze, missing at random, normal distribution, class variable, numeric functions | source | 14 |
| 105 | In Search of the LOST CARD | Andrew T. Kuligowski | "Everyone who's not here, rai se you r hand." It's an old jo ke, b ut it point s o ut the difficul ty of identifying persons or things that are not present. T he SAS System has its own version of this chestnut, the SASLOG message indicating that there are one or more gaps in one's input data |
input statement, infile statement, sample, numeric variable, missing value | source | 9 |
| 106 | Instant SAS Applications With VBScript, Jscript, and dHTML | Brian P. Fairfield-Carter, Stephen Hunt, Tracy Sherman |
For a programmer with limited experience outside of Base SAS, the objective of setting up an application that runs SAS as a 'back-end', and that works with SAS source code outside of the SAS system, can be somewhat daunting. Naturally, the first thing you'd ask would be 'what is the simplest, cheapest environment that I can get started with?' A good answer seems to lie in the combination of Windows Scripting technologies (VBScript and Jscript), dynamic HTML, and SAS integration with the Windows Component Object Model (COM). HTML provides a very simple environment in which to create a graphical user interface, which can be made dynamic (as in, responsive to user actions) by placing VBScript and Jscript components between <SCRIPT> and </SCRIPT> tags. The script components can, in turn, launch SAS sessions, run SAS code, and retrieve and display SAS output and data | proc step, txt, proc report, proc print, conditional do loop, sample, dataset, proc contents, ods html, macro definition, proc sql | source | 10 |
| 107 | Integration of SAS Data Warehousing/Mining and Enterprise Collaboration and Data Aquisition Portals with ESRI-Based Geographic Information Systems and Public Sector Business Systems | William S. Holland | The convergence of GIS and IS offers extraordinary new opportunities. Driven by emerging data, system, and application interoperability standards, GIS can now become a central and transparent part of business information systems such as asset, financial, human resource, project, and customer relationship management. Major advances in mobile computing and wireless communications now offer potential for anytime, anywhere location-based information access and decision support. This presentation has two objectives: First, to provide definitions and examples of the next dimension of GIS, including key organizational, and management success factors; second, to detail a proven technical framework for spatial and non-spatial data interoperability using the SAS Bridge and ubiquitous access using ESRI's ArcGIS and the SAS Intelligent Warehousing and Information Delivery Portal. This paper will include case studies. A. Introduction The objective of this paper is to elucidate the intersection of SAS and Geographic information systems (GIS) technologies, particularly in the public sector. For the most part, SAS technologies and GIS have functioned independently in government. Notwithstanding, there are many similarities between the technologies: both are integrating technologies; both are analytical technologies; and both are strategic technologies. Notwithstanding these similarities, these technologies are more complimentary than competitive - that is to say there is alignment. The intersection occurs is at three points: ¾ Where the spatial (map, geographic, or locational) dimension adds value to SAS integration and analytics; ¾ Where the non-spatial integration and analytics adds value to GIS; and ¾ Where spatial and non-spatial analytical visualization adds value to both technologies. This paper is organized in three portions. The first provides a primer on GIS technology. The second summarizes the potential and limitation of the intersection of GIS and SAS technology | data cleaning, data mart | source | 14 |
| 108 | Introducing SAS Forecast Studio | Michael J. Leonard, Brenda Wolfe, Paddy Fahey |
Organizations depend on statistical forecasting to provide a solid foundation for many important planning and decision-making processes. SAS Forecast Studio facilitates and speeds the statistical forecasting process by providing a convenient, user-friendly interface to the large-scale automatic forecasting, model building, and time series exploration capabilities available in the SAS System. This new user interface addresses the needs of novice forecasters by being largely automated, yet still meets the needs of more experienced analysts by providing layers of sophistication that can be accessed as needed. SAS Forecast Studio enables users to set up forecasting projects, perform large-scale automatic forecasting, identify exceptions, override forecasts, and construct their own models if desired. Given the scale of many forecasting problems, manually customizing many statistical models may not be feasible | response variable, time series analysis, residual, predictor variable, sample, feature selection, partial autocorrelation, dataset, raw data, regression analysis, confidence interval | source | 16 |
| 109 | Introducing the GLIMMIX Procedure for Generalized Linear Mixed Models | Oliver Schabenberger | This paper describes a new SAS/ST A T procedure for fitting models to non-normal or normal data with correlations or nonconstant variability . The GLIMMIX procedure is an add-on for the SAS/ST A T product in SAS 9.1 on the Windows platform. PROC GLIMMIX extends the SAS mixed model tools in a number of ways. For example, it models data from non-Gaussian distributions implements low-rank smoothing based on mixed models provides new features for LS-means comparisons and display enables you to use SAS programming statements to compute model effects, or to define link and variance functions * fits models to multivariate data in which observations do not all have the same distribution or link Applications of the GLIMMIX procedure include estimating trends in disease rates, modeling counts or proportions over time in a clinical trial, predicting probability of occurrence in time series and spatial data, and joint modeling of correlated binary and continuous data |
proc glimmix, proc mixed, proc step, likelihood function, binomial distribution, covariance, response variable, poisson distribution, covariance structure, fixed effects, logistic regression, normal distribution, proc calis, estimate, correlation | source | 20 |
| 110 | Introduction to SAS Enterprise Guide 3.0 for Statistical Analysis | Charles B. Hallahan, Linda P. Atkinson |
The workshop begins with a quick tour through the layout of Enterprise Guide (EG) 3.0 as a menu-based interface to SAS procedures. Emphasis in this workshop will be on the statistical capabilities of EG. In particular, a set of data will serve as a case study for performing exploratory data analysis, estimating a multiple regression model, and examining graphical diagnostics for the model fit. The workshop will show how code generated by EG can be customized, stored, and rerun, and custom reports saved with the Document Builder | sas enterprise guide, regression analysis, proc reg, predictor variable, dataset, proc step, correlation, response variable, estimate, scatter plot, data science, sample, outlier | source | 20 |
| 111 | IRT-FIT: SAS Macros for Fitting Item Response Theory (IRT) Models | Robert Terry, Sung-Hyuck Lee |
Psychometrics has recently seen the development of complex measurement models to better represent test and item data. Item Response Theory (IRT), in particular, comprises a set of non-linear latent variable models that appear to have several conceptual and empirical properties that make them more valuable in practice than classical test theory methods. However, IRT-based models typically require the availability of costly and computationally- intensive software for estimating parameters and assessing model fit. In this paper, we present a set of SAS Macros called IRT-FIT, which use SAS /IML and SAS/GRAPH to estimate, fit, and graph two- and three-parameter IRT models to binary test data. The macros currently developed use Bock and Aitkin's (1981) Marginal Maximum Likelihood (MML) estimation algorithm for fitting models and estimating parameters as the basis for the computations |
likelihood function, estimate, logistic distribution, roc curve, prior probability, proc calis, latent variable, missing value, standard deviation, maximum likelihood estimation, proc step | source | 9 |
| 112 | Java in SAS: JavaObj, a DATA Step Component Object | Richard A. DeVenezia | The experimental JavaObj gives DATA STEP programmers the ability to reach into the world of Java. This is a powerful new feature for solving real problems. Imagine, all the Java application programming interfaces (API) and class libraries, placed at your disposal. Several JavaObj examples that interact with the Java 2DTM API are presented to demonstrate the syntax of the DECLARE statement and the methods of JavaObj. The design of JavaObj creates many situations that require an adapter Java class to fully exploit the features of a library. Programming concepts needed to write adapters will be discussed. SAS Programs that heavily use an adapter can suffer from syntax clutter. Using the SAS Macro Language as a remedy is examined |
sysrc, proc calis, sample | source | 16 |
| 113 | JMP versus SAS Overview with a JSL Guide for the SAS Programmer | Andy Mauromoustakos, Kevin C. Thompson |
First we will provide an overview that provides SAS users a quick comparison among SAS and JMP. Then we will focus our attention on providing SAS programmers with a quick guide for JSL (JMP's Scripting Language). JSL was added in JMP version 4 and is, in our opinion, the boldest new feature delivered for some time. It, for the first time, provides users a powerful language that gives knowledgeable JMP users the opportunity to more easily perform routine tasks and extend JMP beyond its already broad capabilities. We will illustrate things by sketching the construction of an application for the generation of Honeycomb field designs used for crop breeding by geneticists performing plant selection. We will compare JMP and SAS versions of the application from both the programmer's and the user's perspective. What we are hoping to show SAS users that JSL can be one of the new learning challenges in their wish list | dataset, proc step, sas programmer, macro definition | source | 8 |
| 114 | Journeymen's Tools: The Writing for Reading and Reuse Program Header or Everything You Ever Wanted To Know About A Program But Were Afraid To Ask | Ronald J. Fehd | Information is the difference that makes a difference. The difference between a program with documen- tation and one without is the cost of development. A program with documentation is more likely to be easily understood and therefore more likely to be reused thus saving the effort and expense of rein- vention. This paper proposes a model program header which, like this paper, contains a title, ab- stract, and introduction that are designed to com- municate clearly program intent and usefulness. Ex- pected audience is intermediate to advanced users and programmers. Keywords: comments documentation quality theory . Contents | source | 4 | |
| 115 | Journeymen's Tools: Two Macros - ProgList and PutMvars - to Show Calling Sequence and Parameters of Routines | Ronald J. Fehd | A program that is a job may define parameters for and call other programs which are routines. SAS R⃝ routines and subroutines may be implemented as %includes or macros. Routines call other routines and subroutines. When testing or debugging multi- level %includes, it is difficult to determine which pa- rameter in which routine or subroutine produced an error or warning message in the log. This paper discusses options used for testing, pro- vides a new option, shows subroutine control us- ing session constants, and illustrates two macros to show parameters and calling sequence of routines. Expected audience is intermediate to advanced pro- grammers with experience using %includes with pa- rameters. Contents | macro variable, proc sql | source | 8 |
| 116 | Let Your Data Power Your DATA Step: Making Effective Use of the SET, MERGE, UPDATE, and MODIFY Statements | Howard L. Schreier | The "plain vanilla" SET statement is ubiquitous in SAS programming. It feeds the contents of a data set to a DATA STEP. This usage only scratches the surface of the capabilities of the SET statement and its siblings (MERGE, UPDATE, and MODIFY). Data sets typically are more than collections of individual values; they also incorporate information in the form of structure and organization. The SET, MERGE, UPDATE, and MODIFY statements are versatile tools that can use such information to combine and refine data. This tutorial will explain and illustrate the basic capabilities of each of these statements and will compare their advantages and disadvantages in different programming situations |
set statement, by group processing, merge statement, modify statement, update statement, output, missing value, key=, lookup, transaction data | source | 19 |
| 117 | Litigation and SAS: Some Dos and Don'ts (or, You Call that Evidence?) | Nicholson E. Warman | This paper will cover some steps to follow when preparing SAS programs and data results as evidence for litigation, be it for discovery and/or trial. Some common errors will also be covered, and steps to guard against these errors will be covered. With SAS used more and more extensively to analyze data from all industries, the data and programs need to be handled correctly, or your efforts could be suppressed under a Daubert motion. And you thought that company bonuses would be good this year! | proc step, time series analysis, standard deviation, batch processing, missing value, proc format, proc sql, dataset | source | 10 |
| 118 | Looking for a Date? A Tutorial on Using SAS Dates and Times | Arthur L. Carpenter | What are SAS date and time values? How are they used and why do we care? What are some of the more important of the many functions, formats, and tools that have been developed that work with these crucial elements of the SAS System? This tutorial will answer these questions and many more. Starting with date and time constants and their representation in SAS and then expanding to functions and formats, the basics of the use of dates and times will be integrated with their use as part of both data tables and data displays. The discussion will include functions and formats that are new to Version 8 and SAS 9. Also covered are picture formats and date directives, date scaling in SAS/GRAPH, shift operators in the INTNX and INTCK functions, and the use of the %SYSFUNC macro function |
sysdate9, datepart, date variable, options statement, macro facility, macro put, macro function, macro variable, macro definition | source | 13 |
| 119 | Macro Architecture in Pictures | Mark Tabladillo | The qualities which SAS macros share with object-oriented languages account for the power of macro programming. This picture guide will graphically model and introduce how SAS macros are best built, and use these graphics to illustrate how macros share some qualities of object-oriented programming (defined as encapsulation, polymorphism, and inheritance) | macro definition, macro variable, macro facility, txt | source | 10 |
| 120 | Macro Bugs - How to Create, Avoid, and Destroy Them | H. Ian Whitlock | The central theme of this paper is the macro debugging process. However, a great many bugs are simply due to not understanding how macro processing works. Therefore, some time will be spent on understanding this process. One has to be able to locate bugs before they can be fixed, so time will also be spent on design features as they impinge on the search for bugs. Then, of course, some time will be spent on the traditionally supplied tools for debugging. The reader may be relatively new to writing macros, but he/she should bring some SAS and some macro experience to the lecture, for it is hard to pick up all the background even when all terms are explained. The material discussed was developed under Windows, and all logs come from the execution of SAS version 9.2. Unless noted everything is probably appropriate to all operating systems and available versions of SAS | macro facility, macro variable, macro put, call execute, put statement, if-then-else, %if-%then-%else, call symput, run, proc step, macro loop, error message, do loop, proc sql, mfile, macro definition, proc print, title statement, macro call, mprint, missing value, error, macro quoting function, select | source | 20 |
| 121 | Mainframe SAS for the 21st Century | Kryn Krautheim | Versions 8 and 9 of the SAS System have included many enhancements that are typically enjoyed by users of the PC platform. While working on a major overhaul of one of our reporting systems, we discovered many features of SAS that worked very well on the Mainframe, but were not widely known. This paper illustrates a few 'modern' tools that SAS Programmers can use in the Mainframe environment to move their systems forward into 21st Century techniques and applications. We will take a quick look at generating PDF files, using the SAS FTP access method, and generating e.mails, all from the z/OS (Mainframe) environment | filename statement, ods pdf, sample | source | 6 |
| 122 | Make Bill Gates and Dr. Goodnight Run Your SAS Code: Using VBA, ADO, and IOM to Make Excel and SAS Play Nice | Ted Conway | With the advent of the SAS Integrated Object Model (IOM), which has even found its way into the $125 SAS Learning Edition, SAS has made communication between EXCEL and SAS more flexible than ever. This paper presents simple examples of how one can write SAS code, run SAS programs, and retrieve the results for presentation in EXCEL-all without leaving the EXCEL environment! It may be of interest to anyone who uses Base SAS and Microsoft EXCEL on the PC platform |
excel, proc step | source | 4 |
| 123 | Make the Invisible Visible: A Case Study of Using ODS Inline Formatting Style | Zizhong (James) Fan | Starting from Version 8.2, SAS supports the ability to insert simple formatting text into ODS output, which is called Inl ine F ormatting. T his is accomp lished by usi ng the statemen t ODS ESCAPECHAR=' escape- character'. T his paper will use a practic al example to sh ow the pr os and cons of using Inline Formatting Style in DATA steps and STYLE= options in PROC steps. SAS product: Base SAS. Skill level: Interme diate or advanced |
proc step, sample, sample size, proc report, proc print | source | 7 |
| 124 | Making Sense of PROC TABULATE | Jonas V. Bilenas | The TABULATE procedure in SAS provides a flexible platform to generate tabular reports. Many beginning SAS programmers have a difficult time understanding the syntax of PROC TABULATE and tend to avoid using the procedure. This tutorial will explain the syntax of PROC TABULATE and, with examples, show how to grasp the power of PROC TABULATE. The data used in this paper represents simulated consumer credit card usage data and the code was developed using SAS 9. This updates the paper presented at NESUG in 2001 with the same title |
proc step, proc tabulate, class variable, proc format, sample, credit card, excel, proc freq | source | 12 |
| 125 | Managing a SAS Programming Environment Using Data Access Pages and the Microsoft Office Data Source Control | Brian P. Fairfield-Carter | A well-managed SAS programming environment offers convenient, centralized access to source code, authorship, completion and validation status, revision history, and validation documentation. It provides a quick view on progress, builds in effective process flow, enforces consistency, and eliminates redundancy and repetition. Toward this end, in programming for a clinical trial, we usually see the development of some sort of "Table of Programs" (TOP), containing information such as program name and location, author, completion date, validation status and date, revision history, and dependencies. In addition, either as part of the TOP or in a separate file, we also often see some sort of "Table of Tables, Figures and Listings (TFLs)", containing data such as titles and footnotes, TFL number, source data, analysis population, and output type | data cleaning, analysis set, connection string, raw data, sas programming, validation documentation | source | 10 |
| 126 | Manipulating Data with PROC SQL | Kirk Paul Lafler | PROC SQL is a popular database language with numerous extensions for working with numeric and character data including an assortment of operators , functions, and predicates. This paper presents coding techniques that perform text case conversions, concatenation of two or more character strings, pattern and phonetic matching operations, updates to data in a table, and other useful coding techniques for SAS and PROC SQL users |
proc sql, proc step | source | 8 |
| 127 | Mapping an Exclusive Regular Expression Strategy | Mark Tabladillo | In version 9, the SAS System introduces Perl regular expressions (sometimes known by the acronym PRX, the first three letters of these new functions or call routines). However, previous versions of SAS already had regular expressions (known by their acronym RX, the first two letters of these functions or call routines). This presentation will map specific functional and performance differences in these two exclusive regular expression strategies, and offer recommendations on when to use each strategy | prxposn, macro definition | source | 10 |
| 128 | Maximum Likelihood Parameter Estimation with Incomplete Data | Catherine Truxillo | Incomplete data presents a problem in both inferential and predictive modeling applications. Traditional methods such as complete case analysis and simple imputation tend to produce results that inadequately estimate standard errors and/or parameter estimates, particularly where missingness is not completely at random (MCAR). Modern methods for handling incomplete data, including maximum likelihood parameter estimation and multiple imputation methods, enable researchers to derive appropriate parameter estimates and inference from incomplete data when data are missing at random (MAR). However, for a variety of reasons, multiple imputation is not always practical, particularly with very large data sets or in applications where it is important to have only one working data set (such as public sector data). This paper illustrates the use of PROC MI, which provides maximum likelihood (ML) estimates of the covariance matrix and mean vector using the expectation-maximization (EM) algorithm |
imputation, covariance, proc cancorr, mean imputation, proc calis, sample, sample size, correlation, multiple imputation, estimate, missing value, proc mi, proc step, discriminant analysis, data cleaning, maximum likelihood estimation, validation set, bubble plot, likelihood function, missing at random, numeric functions, inferential statistics, data science | source | 19 |
| 129 | Merging versus Joining: Comparing the DATA Step with SQL | Malachy J. Foley | Which merges files b etter: the SAS DATA STEP or SAS SQL? Traditionally, the only way to merge files in SAS was via the SAS DATA STEP . Now SAS pro vides a Structured Query Language (SQL) facility wh ich also merges files. This tutorial compares and contrasts these two merge facilities. It examines the pros and cons of each merge technique. It looks at DATA STEP code to perform specific merges and then looks at the corresponding SQL code to perform the same merges |
proc sql, inner join, full join, create table, proc step, right join, where statement, coalesce function, data merging, relational database, merge statement | source | 18 |
| 130 | Message Queue-Based Scoring Interface | David R. Duling, Robert Chu |
Predictive modeling tools such as SAS Enterprise Miner generate score code that can be applied in business applications to produce recommendations. This paper describes a programming interface for scoring clients to invoke scoring services through message queues. The interface is applicable to both "real-time single-observation" scoring and "high-data-volume table-based batch" scoring. Readers learn how to invoke message queue-based scoring services from various scoring clients written in different programming languages such as C++, Java, and the SAS DATA STEP. Topics discussed include model identification, input data format, output data format, and error handling. The intended audience is data mining practitioners and IT professionals who are responsible for predictive model scoring in operational and business intelligence applications |
web service, if-then-else, score code, data mining, sas model manager, mp connect | source | 14 |
| 131 | Microsoft Office Integration with the SAS BI Server | Jennifer Bradshaw Clegg, I-Kong B. Fu |
SAS Add-In for Microsoft Office is a Component Object Model (COM) add-in to Microsoft EXCEL and Microsoft Word. SAS Add-In for Microsoft Office leverages the SAS BI Server to seamlessly expose the power of SAS data access, reporting, and analytics directly from the familiar envir onment of Microsoft Office. This paper discusses the capabilities and features of SAS Add-In for Microsoft Office 1.3 |
excel, sas enterprise guide, sas management console, proc sql | source | 17 |
| 132 | Mining Transactional And Time Series Data | Michael J. Leonard, Brenda Wolfe |
Web sites and transactional databases collect large amounts of time-stamped data related to an organization's suppliers and/or customers over time. Mining these time-stamped data can help business leaders make better decisions by listening to their suppliers or customers via their transactions collected over time. A business can have many suppliers and/or customers and may have a set of transactions associated with each one. However, the size of each set of transactions may be quite large, making it difficult to perform many traditional data-mining tasks. This paper proposes techniques for large-scale reduction of time-stamped data using time series analysis, seasonal decomposition, and automatic time series model selection. After data reduction, traditional data mining techniques can then be applied to the reduced data along with other profile data. This paper demonstrates these techniques using SAS/ETS, SAS/STAT, Enterprise MinerTM, and SAS High-Performance Forecasting software |
time series analysis, sample, time series data, data mining, seasonal decomposition, cluster analysis, proc freq, proc hpsplit, series plot, distance measure, feature selection, correlation, heatmap, seasonality, dimensionality reduction, estimate, missing value, proc calis, proc cancorr, outlier | source | 26 |
| 133 | Mixture Experiments and Their Applications in Agricultural Research | Khorsand Bondari | Statistical techniques used to analyze dat a from Mixture Experiments involve fi tting Multiple Regression models with the intercept set to zero, Canonical Analysis to determine the shape of the fitted response, and the Response Surface System. One can use Mixture Design Macros (e.g., ADXMIX File) in SAS or the point-and-click ADX Interface of SAS to analyze data and obtain graphs. Contour plot, the residual plot showing the deviations of the observed values from their predictions, and Box-Cox transform plot, etc. would also be provided by the ADX Interface of SAS. Two experiments with 3-component (X1, X2, and X3) Mixture Design consisting of equa lly spaced proportions of 0, 0.5, and 1 (designated as {3, 2} Design) and 0, 1/3, 2/3, and 1 (des ignated as {3, 3} Design), and a 4-component mixture design (X1, X2, X3, and X4) will be considered to show analys es and interpretations of the results | anova, contour plot | source | 8 |
| 134 | Model Building in PROC PHREG with Automatic Variable Selection and Information Criteria | Emily M. Cain, Ken Kleinman, Ernest S. Shtatland |
In SUGI'29 presentation, we suggested that our strategy of model building in PROC LOGISTIC (see also our SUGI'26 and SUG I'28 papers) could work for PROC PHREG as well. Our suggestion was based on the clos e similarity between logistic and Cox's regressions, including information criteria and stepwise, forward, backward and score options. Here we elaborate on this suggestion. As in logis tic regression, we propose an approach to model building fo r prediction in survival analysis based on the combination of stepwise regression, Akaike information crit eria, and the best subs et selection. As in the case of PROC LOGISTIC, the approach in herits some strong features of the three components mentioned above. In particular, th e approach helps to avoid the agonizing process of choosing the "right" critical p-value in stepwise regression |
regression analysis, proc step, proc phreg, logistic distribution, proc logistic, logistic regression, data cleaning, best subsets, feature selection, stepwise selection, sample, data science, predictor variable, bootstrap, proc princomp | source | 10 |
| 135 | More Than Batch: A Production SAS Framework | Denis L. Cogswell | How can we aut om ate runni ng a large n um ber of SAS steps o n the W indows pl atform? W indows do esn' t provide a robust batch facility e quivalent to JCL in z/OS. T his paper presents a framework that will: · Run a ser ies of SAS steps wi th little or no anal yst intervent ion · Save all SAS LOG and PRINT files to provide an audit tr ail · Catch SAS errors and prevent SAS from cont inuing a fter an error · Notify staff of errors, including t he f ailing st ep's LO G as an e mail attachm ent · Notify staff of successf ul com pletion o f the j ob · On rerun, rest art aut om atically at a previousl y failed st ep · Require no editing of SAS source for regular processing - SAS source can be read-only · Lev erage staff fam iliarity with SAS - no n ew scr ipting l angua ge | macro variable, sysrc, sas batch, macro definition, missing value, format statement, %if-%then-%else, data step | source | 10 |
| 136 | Moving Data and Analytical Results between SAS and Microsoft Office | Vincent DelGobbo | Transferring data between SAS and Microsoft Office can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the HTML and XML support in Base SAS software to move data between SAS and Microsoft Office (versions 2002 and later). You can use the techniques described here regardless of the platform on which SAS software is installed | excel, dataset, sas output, xls, ods html, ods xml, adverse events, macro definition, sample, proc template, proc step, sas base, libname engine, work library | source zip |
20 |
| 137 | My Friend the SAS Format | Andrew H. Karp | The SAS System's FORMAT facilities provide a diverse and powerful array of tools to work with and present your data. By supplying a range of resources to control how the values of data set variables are portrayed in your SAS output (i.e., your reports and analyses), SAS Format tools offer something for all SAS users, at all experience levels, and across the range of ways that the SAS System is used to report, manage, analyze and display data. Applying these capabilities to your SAS data sets, as well as the reports/analyses you generate from your data, enhance the visual appeal of your output, reduce ambiguity about the meaning of terms/definitions of values of variables, reduce coding and (depending on the size of the data set) processing time, and generally make your life easier as a SAS Software user. This paper starts with the basics and then discusses many ways you can take advantage of the many ways SAS Formats can be applied to your data, reports and analyses | proc format, proc step, proc print, work library, dataset, char., format statement, proc freq, sas 9, options statement, character variable, numeric variable, sas base, date variable, sysdate9, sas output, libname statement | source | 12 |
| 138 | New to SAS and New to Programming? What You Need to Do Before Typing Code | Stephanie R. Thompson | People from all kinds of backgrounds are using SAS software to meet their business needs. Some come with previous programming experience and some have never typed a line of code in their career. Have you been told what each PROC does, that each DATA STEP must end in a run command, and then been told to write a SAS program? Have you been given code to launch and told to "just change the date and run it every week"? Beware. There is a lot more to SAS programming than knowing some syntax and launching a job. Being a successful SAS programmer means bringing yourself up to speed with some basic programming skills. Before typing even the first line of code into the Enhanced Editor, some preparation needs to be done. Doing this will help you more than you can imagine. This paper provides the basics of programming that can help you write good code and ensure you are getting the answer you intended to get |
proc step, proc sql | source | 6 |
| 139 | No %'s or &'s: Macros Inside the SAS DATA Step | William C. Murphy | Macro programming is one of the most powerful and flexible techniques in the SAS system. Macro programs can be used to automate repetitive tasks and for conditional execut ion of program statements. For some, however, the syntax of macro code may sometimes be confusing and hard to follow. Bu t most macro tasks can be accomplished with the use of a CALL EXECUTE routine within a DATA STEP. The argument to the Call execute routine is a text string or variable containing a text stri ng. The Call execute resolves this argum ent and executes it after the end of the calling DATA STEP. The text string argument can be coded to execute another DATA STEP or to run a PROC or both. In fact, you can use the CALL EXECUTE routine within a DATA STEP to write a complete SAS program that can perform a variety of tasks, under the control of the calling DATA STEP |
call execute, proc step, macro variable, macro loop, do loop, sample, proc sort, excel | source | 4 |
| 140 | ODS Markup: The SAS Reports You've Always Dreamed Of | Eric A. Gebhart | Find out why Output Delivery System (ODS) TAGSETS are going to take over the world! ODS TAGSETS are incredibly powerful tools that can simplify and conquer the worst of problems. New ODS markup destinations are being created all the time. One of the most powerful aspects of ODS markup is its ability to reuse and combine previous work to create more powerful and flexible ODS markup destinations |
proc step, proc print, excel, proc report, ods html, proc sql, output delivery system, macro variable, proc tabulate, sas base, create table, ods tagsets.excelxp, sas output | source | 26 |
| 141 | On GSForward-The Experimental Variable Selection Node in SAS Enterprise Miner 5.1 | Leonardo Auslender | The GSForward node is an implementation of the methods described in Foster and Stine (2004), who present a novel approach in variable selection with a large number of variables | sample, sample size, data mining, feature selection, response variable, forward selection, regression analysis | source | 6 |
| 142 | Parameterizing Models to Test the Hypotheses You Want: Coding Indicator Variables and Modified Continuous Variables | David J. Pasta | When statistical models include categorical explanat ory variables, you can specify them on the CLASS statement (if the procedure supports the CLASS statem ent), or you can create a set of "dummy" or "indicator" variables. When you specify a categor ical variable on the CLASS statement, there is a default parameterization that SAS uses. But the default parameter ization may not produce what you expect (for example, the default par ameterization for PROC LOGISTIC is different from the default for PROC GLM). Beginning with Version 8, SAS prov ides more power and flexibility for categorical variables in the CLASS statement, specifically by allowing you to specify the method of parameterization and the reference category. The selected param eterization method has a profound effect on how CONTRAST statements are specified and on the inte rpretation of the parameter estimates and the associated hypothesis tests |
nominal variable, proc genmod, proc logistic, interval variable, binary variable, proc freq, logistic distribution, proc step, odds ratio, maximum likelihood estimation, null hypothesis, likelihood function, options statement | source | 20 |
| 143 | Performance Monitoring for SAS Programs on Windows XP | Richard Andrews, Sherry Dixon |
The SAS System offers statisticians, programmers, and analysts a myriad of techniques, which can be used to sort, merge, manipulate, quantify and communicate data. The exact same result can be achieved in many different ways using SAS, though one method may finish much faster or use fewer resources than another. Although the difference in run time or resource allocation between analysis methods may be practically insignificant for many programs, it may be large for programs with extensive analyses. This paper will present a process that shall be called the "wrapper" program that will capture statistics about the performance of a workstation when using different analysis methods. The process will demonstrate how to programmatically create performance measurements of a workstation while processes are executing. This will be done by examining CPU usage, memory allocation, paging, SAS work space and I/O utilization in a Microsoft Windows XP environment | fullstimer, txt, macro variable | source | 10 |
| 144 | Power Simulation for Categorical Data Using the RANTBL Function | Joel A. Dubin, Theodore R. Holford, Peter H. Van Ness |
Increases in computing power have enabled Monte Carlo simulations to become increasingly common in contemporary statistical practice. Some applications require specialized statistical software while others can be implemented with general multi- purpose statistical programs. Simulations of the power of statistical tests-the probability of rejecting the null hypothesis when it is false-are among those applications that can be implemented in programs like SAS. This article will demonstrate how the SAS program, and in particular, its RANTBL function can be used to simulate the power of many statistical tests for categorical data. Furthermore, the advantages and disadvantages will be described of simulating random variables from a probability distribution defined by a table of values rather than by the parameters of a probability mass function. Code will be provided for simulating the power of the Kendall Tau-b correlation coefficient | logistic regression, regression analysis, correlation, logistic distribution, sample, sample size, probability distribution, null hypothesis, proc freq, kendall correlation, likelihood function, binomial distribution, monte carlo, spearman correlation | source | 12 |
| 145 | Predicting Customer Value | Will Potts | The future value of a contractual customer depends on the remaining lifetime of their products and the path of their future cash flows. Predicting customer value involves modeling the churn hazard as a function of tenure and other customer attributes. The mean, restricted mean, and median lifetime value are computed by scoring future time intervals with the hazard model | do loop, hazard function, logistic distribution, customer lifetime value, proc step, probability distribution, churn, likelihood function, regression analysis, proc phreg | source | 6 |
| 146 | Predicting Workers' Compensation Insurance Fraud Using SAS Enterprise Miner 5.1 and SAS Text Miner | Terry J. Woodfield | Insurance fraud costs the property and casualty insurance industry over 25 billion dollars (USD) annually. This paper addresses workers' compensation claim fraud. A data mining approach is adopted, and issues of data preparation are discussed. The focus is on building predictive models to score an open claim for a propensity to be fraudulent. A key component to modeling is the use of textual data to enhance predictive accuracy. Binary response modeling is emphasized, but a two-stage modeling approach is briefly addressed. SAS Enterprise Miner 5.1 with SAS Text Miner provides the modeling environment for the analysis | unsupervised learning, workers compensation, data mining, outlier, nominal variable, insurer, score code, data wrangling | source | 6 |
| 147 | PreMIS: Pre-hospital Medical Information System | Jeff Wright, Patrick H. Alston, Sharon Schiro, Tim Walters |
PreMIS is a pre-hospital medical records system funded by the State of North Carolina and developed by the Department of Emergency Medicine at the University of North Carolina at Chapel Hill. The system uses web data entry, mobile hand held devices, and batch import to collect incident records from EMS providers throughout the state of North Carolina. This data is then used for bio-terrorism surveillance, provider reports, and billing support. The SAS System is used by PreMIS to populate a data warehouse and to implement reports. PreMIS reports are surfaced over the Internet through a secure reporting portal via a combination of stored processes, SAS Integration Technologies, and Java. Part of the PreMIS mission is to promote best practices among EMS providers, so great attention has been paid to which performance measures are reported and in what form. This paper will present a history of the implementation to date, and share both successes and lessons learned | raw data, fact table, data standard, data warehouse, proc step, management reporting, sas base, surrogate key, proc sql | source | 12 |
| 148 | Pretty Dates All in a Row | Dianne Louise Rhodes | macro variable, sysdate9, proc format, sas function, call symput, datepart, macro function, proc step | source | 5 | |
| 149 | Principal Component Analysis versus Exploratory Factor Analysis | Diana D. Suhr | proc princomp, correlation, r-squared, factor analysis, proc factor, latent variable, proc step, maximum likelihood estimation, sample, likelihood function, factor loading, scree plot, proc varreduce, normal distribution, regression analysis | source | 11 | |
| 150 | PROC FORMAT - Not Just Another Pretty Face | Lois Levin | proc format, proc step, proc freq, macro variable, if-then-else, lookup, merge statement, put statement, cpu time, proc sql | source | 12 | |
| 151 | PROC FORMAT, a Speedy Alternative to Sort/Sort/Merge | Jenine Eason | Many users of SAS System software, especially those working with large datasets, are often confronted with processing time challenges. How can one reduce the amount of CPU required to retrieve specific data? In this paper, an "outside the box" approach using a matching method utilizing PROC FORMAT replaces the CPU heavy Sort/Sort/Merge. It is ideal for situations when a key from one file is needed to extract data from another file. It is more apparently useful when at least one of the files is quite large. This method has been proven time and again to decrease CPU by 70%-80% and is effective on all platforms utilizing Base SAS |
proc format, proc step, data step, cpu time | source | 5 |
| 152 | PROC FREQ and PROC MEANS: To Stat or Not to Stat | Marge Scerbo, Michael S. Lajiness |
Procs FREQ and MEANS have literally been part of SAS for over 30 years and are probably THE most used of the SAS analytical procedures. They provide useful information directly and indirectly and are easy to use, so people run them daily without thinking about them. These procedures can facilitate the construction of many useful statistics and data views that are not readily evident from the documentation. This paper will discuss different forms of the procedures and provide you with ideas on where they may be most useful in your organization. This paper should expand your horizons on these two procedures | proc step, proc freq, class variable, out=, numeric variable, dataset, label statement, exact test, missing value, proc format, binomial distribution, sample, by group processing, chi-square test, proc means, proc print, standard deviation | source | 17 |
| 153 | PROC IMPORT with a Twist | Gary M. McQuown | PROC IMPORT is a very useful tool for converting "text" files to SAS1 data sets. However, PROC IMPORT may not properly assign attributes such as the variables length and format. Writing DATA STEP code with infile and input statements provides greater control, but it increases the effort required as well as the probability of human error. Fortunately there are three simple tips or tricks that solves these dilemmas. This presentation should be useful for anyone who uses PROC IMPORT |
proc import, proc step | source | 4 |
| 154 | PROC TABULATE and ODS RTF: The Perfect Fit for Complex Tables | Louise S. Hadden | With the great advances in output design SAS and ODS offers the SAS programmer, the bar has definitely been raised in terms of producing presentation quality SAS output. Analysts frequently design table formats in packages such as Microsoft Word and EXCEL, and request that the SAS programmer fit SAS output to their specifications. This paper will present a challenge and solution, using PROC TABULATE and the RTF destination to fit SAS out- put into a pre-designed template. As the title indicates, a technique to rotate column headers without having to post-process in Microsoft Word will be demonstrated, using PC SAS Version 8.2 and PC SAS Version 9.1, as well as UNIX SAS Version 8.2. The code to produce a sample table will be dissected below, with relevant items high- lighted in gray "tip" boxes. The full program and sample table is also available as an appendix |
proc step, proc tabulate, sample, proc print, proc report, class variable, sas output, sas programmer, excel, file statement | source | 10 |
| 155 | Producing Multipurpose Metadata for Data Quality and a Data Dictionary | John E. Bentley | One of the benefits of a data warehouse is that it provides a "single version of the truth". But the "truth" is often difficult to understand, changes quickly, and is only as accurate as the information it is based on. Metadata is needed to assess quality of the data from which the truth is derived, and the same metadata is valuable in a data dictionary for users. This paper presents a SAS software prototype application that generates metadata in the form of one- way frequencies (for categorical fields) and descriptive statistics (for numeric fields) from newly loaded data warehouse tables, compares current metadata to that produced by the previous load, and then reports changes and anomalies. It also produces a series of html files containing frequencies and descriptive statistics that can be linked to the data warehouse's data dictionary | sample, proc step, macro variable, proc means, dataset, macro loop, do loop, proc freq, mp connect, numeric variable, character variable, proc sql, data warehouse, sample size, data dictionary, proc compare, proc contents, sql pass-through, data cleaning | source | 19 |
| 156 | Programmatically Measure SAS Application Performance on Any Computer Platform with the New LOGPARSE SAS Macro | Michael A. Raithel | For years, SAS programmers have manually combed through their SAS logs to gather the performance metrics of their SAS applications. They take pen in hand and dutifully add up the resource usage of the various DATA steps and PROC steps of their SAS programs. Sometimes they enter the performance data into a SAS data set or into a spreadsheet so that it can be further analyzed. This process is cumbersome and time consuming. The new, experimental LOGPARSE SAS Macro eliminates the drudgery of obtaining SAS program performance metrics by hand. The LOGPARSE Macro parses SAS log files and stores SAS performance metrics in a SAS data set. That SAS data set can be used to programmatically report the performance of individual steps within a SAS program, report the performance of the entire SAS program, or report the performance of individual programs within a SAS application. The LOGPARSE Macro can be used to record SAS performance information on any platform that SAS runs on |
macro definition, dataset, sas log, key performance indicator, proc step, autocall macro, macro variable, flat file, options statement, sample, macro loop, proc contents, libname statement | source | 14 |
| 157 | PRX Functions and CALL Routines | David L. Cassell | With the advent of SAS 9, the power of Perl's regular expressions is now available in the DATA STEP. The PRX functions and call routines enable you to use the pattern matching features of Perl 5.6.1 to search for patterns in text, to save information about matching patterns, and to substitute new forms for the matched patterns. The PRX functions are invaluable for all manner of text manipulation, including validation, text replacement, and string testing. In this workshop, you will learn: how to use Perl regular expressions in the DATA STEP how to write SAS code to access the PRX functions and CALL routines how to write some simple Perl regular expressions how to use these Perl regular expressions to search for text and replace text Familiarity with the DATA STEP is required. No prior knowledge of Perl is needed, but it won't hurt |
sas 9, prxchange, prxparse, variable, prxmatch, data cleaning | source | 15 |
| 158 | Publishing Jack Vance: The SAS System as a Tool for Literary Analysis | Koen Vyverman | The Vance Integral Edition (VIE) is a non-profit organization that aims to publish the entire works of the American author Jack Vance in a limited, durable, and definitive edi tion. As each of Vance's 136 novels and short stories progresses through the VIE workflow--from scanning and digiti zing, via restoration and proofing, all the way through to typesetting and printing--the SAS System has proved to be invaluable. SAS software has been used for comparing and analyzing the contents of the various file form ats that are involved (flat-file, Word document, RTF), for keeping track of text changes, for reporting in Word and EXCEL formats, and for providing analytical insights into some prickly questions of textual and stylistic integrity. This paper discusses the major VIE processes where SAS came to the rescue, with ample segments of code and sample output |
sample, excel, dataset, proc freq, xls, flat file, macro definition | source | 23 |
| 159 | Remote Compute Services Simply Stated | James C. Stokes | What is Remote Compute Services and what is its relationship to SAS/CONNECT? When might it be to my benefit to leverage the power of Remote Compute Services? How can I use Remote Compute Services? These are questions a SAS user of varying levels of expertise and experience may ask. As many of us are required to routinely work on multiple platforms, the need to make use of Remote Compute Services becomes even more critical to our success. By using Remote Compute Services, one can easily utilize the computer resource on various platforms by running jobs on remote systems. In addition, by submitting the SAS source code from the local host, you can now store the SAS source code in a single location; thereby, eliminating one of the primary obstacles to efficiently and effectively managing SAS source code |
proc freq, sas output | source | 3 |
| 160 | Reporting and Interacting with Excel Spreadsheets with ODS and DDE | Steven H. Feder | By no w ev er yo ne kn ow s S A S ca n di re ct ou tp ut to H T M L fi le s , wh ic h ca n be vi ew ed by a br ow se r . Bu t Ex ce l ca n al so op en H T M L fi le s , wi th so me of th e ap pe ar an ce fe at ur es av ai la bl e . In ad di ti on , by us in g re la ti ve ce ll re fe re nc es to pa ss in fo rm ul as , pr og ra mm er s ca n al so cr ea te sp re ad sh ee ts th at se rv e as ap pl ic at io ns . Th e ap pl ic at io n ca n di sp la y da ta in a us er - fr ie nd ly fo rm at wh ic h al so al lo ws th e us er to mo di fy va lu es . By re ad in g an d wr it in g to th e Ex ce l fi le th ro ug h D D E , th e fu ll fu nc ti on al it y of S A S is av ai la bl e in te ra ct iv el y . Th is is id ea l fo r ap pl ic at io ns in wh ic h th e us er co ns id er s th e da ta an d tr ie s ou t th e re su lt s of va ri ou s ma nu al ad ju st me nt s to sp ec if ic va ri ab le s | excel, proc report, proc step, macro variable | source | 9 |
| 161 | Reporting SAS9 License Usage | David J. Bosak | The purpose of this paper is to describe a way of quantifying and reporting SAS product usage precisely. The paper will outline a method of capturing SAS session usage using the RTRACE configuration option. The data from RTRACE will be mapped to SAS products, and reports will be generated from SAS IT Resource Management (ITRM). The result will be a system for monitoring and analyzing SAS license usage from ITRM | exception handling, sas library, sas base, proc step | source | 11 |
| 162 | Reporting Statistical Results with PROC REPORT | Nestor Rohowsky | proc report, proc step, adverse events, proc means, proc tabulate | source | 6 | |
| 163 | Rounding after Multiple Imputation with Non-Binary Categorical Covariates | Christopher F. Ake | At some point in their careers many SAS users will confront a problem of missing data. A variety of statistical approaches have been developed to handle this problem. One of the most promising of these to emerge in the last several decades is multiple imputation. In SAS multiple imputation can now be performed in many contexts with the use of the MI and MIANALYZE procedures. To use these procedures, however, unless your data have a special structure known as monotone, they must be approximately multivariate normal, or transformable into multivariate normal. Methods have been proposed to accommodate data that include binary variables or categorical variables with more than two levels with missing values. These methods involve replacing non-binary categorical variables with sets of binary dummies, treating the binaries like normal variables in the imputation step, and then doing some kind of rounding of the imputed values | imputation, missing value, nominal variable, proc step, proc mi, multiple imputation, binary variable, sample, regression analysis, propensity score, proc corr, mean imputation, p-value, data science, proc mianalyze | source | 11 |
| 164 | Rule Your Data with The Link King (a SAS/AF application for record linkage and unduplication) | Kevin M. Campbell | record linkage, character variable, sample, in=, batch processing, missing value, artificial intelligence, imputation | source | 9 | |
| 165 | Rules for Tools - The SAS Utility Primer | Frank C. DiIorio | macro variable, dictionary tables, macro put, %if-%then-%else, proc sql, sysrc, sas log, sas base, macro facility, macro flow control, macro parameter, macro definition, missing value, do loop, macro loop, autocall macro, file statement, options statement, proc step, %macro parameters | source | 19 | |
| 166 | SAS 8 Is Seen in the Rearview Mirror: Generate Statistical Graphics Using ODS in SAS9 | Wei Cheng | In SAS V8, the SAS Output Delivery System (ODS) in SAS/STAT greatly enhances the ability to manage statistical tables. In SAS 9.1, ODS Statistical Graphics (Experimental) enables SAS users to generate statistical graphics as easily as tables. This paper describes how to create statistical graphics automatically from a number of SAS/STAT procedures, as well as how to customize the layout and the appearance of statistical graphics using ODS templates and ODS styles |
proc sgplot, proc means, survival function, proc step, proc template, sas 9, proc freq | source | 10 |
| 167 | SAS 9 Programming Enhancements | Marje Fecht | Performance improvements are the well-publicized enhancement to SAS 9, but what else has changed that impacts your "SAS programs"? This Hands On Workshop explores many new SAS 9 features including: new functions that may eliminate the need for complex expressions changes and additions to informats and formats interface additions and improvements new Export capabilities procedure enhancements and more. . . This workshop is beneficial for Version 8 SAS users who are getting started with SAS 9 | sas 9, macro variable, character functions, proc step, excel | source | 5 |
| 168 | SAS Add-In for Microsoft Office Goes to the Dairy Farm | Crystal Vierhout | The SAS Add-In for Microsoft Office provides access to the strength and power of SAS without requiring SAS programming skills. Utilizing the Microsoft Office environment allows many people to manipulate SAS data with programs they are comfortable with. With very little adaptation, users can load data into a universally understood tool. Currently, access to Dairy Herd Management Parameters is provided with a proprietary legacy application that delivers user-defined reports. Although users of the legacy tool have some flexibility in requesting and retrieving information, the SAS Add-in for Microsoft Office delivers an important improvement in flexibility, power and user interface | business intelligence, sas enterprise guide | source | 6 |
| 169 | SAS Batch Portal Data Collection and Real-Time Monitoring Application of SAS Batch Jobs | Bernard Nicoll | SAS/BP was written to ease the task of Support personnel running SAS Batch Jobs in a Production environment. It is also, from an end-user perspective, an indispensable tool for quickly retrieving SAS Outputs, viewing and analyzing Elapse times, Failures, Metrics, Browsing SAS Tables and Attributes, Volume trends etc. Using a simple Web interface, built with SAS/INTRNET, a quick glance at the Status window gives a complete and detailed view on the status of the Production SAS Batch Jobs |
elapsed time, sas batch, sample, data visualization, macro variable, batch job, proc step | source | 11 |
| 170 | SAS Certification: An End User's Review | Sarbjit Rai | The SAS Certified Professional Program was launched by SAS Institute, Inc. in 1999 to recognize users who can demonstrate an in-depth understanding of SAS software. The program consists of five certifications across a number of functional areas. There are several SAS courses which prepare users for the certification exams. To date many programmers have taken these courses, some experienced users just take the exams, and there are many other SAS savvy professionals who are experienced but not SAS certified! This paper will review the benefits and limitations of the Certification Program for new SAS users as well as those who are more experienced and investigate whether it meets the needs of the user community. Why get certified? What's in it for you? The impact of the Certification Program on SAS jobs and its importance in industry vs. work experience and other SAS training courses will also be explored from an end user's perspective | data governance, statistical programmer | source | 8 |
| 171 | SAS Excels! | Gerald D. Frey | This paper will introduce several techniques for supplying data from SAS to MS EXCEL. SAS can produce detailed, summarized, and categorized data or reports. Frequently; end users desire this information in an EXCEL spreadsheet. Fortunately, using SAS we can provide EXCEL information from various platforms using several different techniques: This paper will examine the following techniques: Export Wizard New SAS Explorer options in SAS 9 Custom DATA STEP SSCFLAT macro Windows ODBC connection New in SAS 9, MS EXCEL LIBNAME engine |
excel, sas 9, dataset, proc step, xls, libname engine, odbc connection | source | 9 |
| 172 | SAS Graphics in Motion | Barbara G. Schneider, Kristan A. Schneider |
Animated graphics become more and more popular to enhance t he effectiveness of presentations. SAS Software provides the GIFANIM device driver to create sequences of images that are displayed from a single GIF file e.g. stored on a Web page or Microsoft Office PowerPoint slide. These linked sequences can result in slide shows or in movie like performances. The poster focuses on an example that we use in a biostatistical course for medical students. An intuitive understanding of random phenomena should be induc ed by the discussed animation. Animated graphics are of great value to transfer didactic c oncepts. SAS code is provided for technical details. SAS software refers to Version 9.1.3. The paper might be interesting for teachers in statistics as well as for presenters in general | normal distribution, by group processing | source | 7 |
| 173 | SAS Macro Variables and Simple Macro Programs | Katie Minten Ronk, Steven J. First |
SAS macros can be a wonderful extension of the SAS language. This hands-on-workshop will introduce SAS users to SAS macro variables and simple macro programs. Please note that due to time constraints it will be only an | macro variable, macro definition, proc step, macro facility, proc print, macro put, macro loop, data step, proc sql, dataset, flat file, sysrc, symbol table | source | 15 |
| 174 | SAS ODS Technology for Today's Decision Makers | Sunil Kumar Gupta | Have you ever wondered why there has been so much excitement about ODS ever since it was introduced? How does ODS significantly enhance the presentation quality of reports and create files that were never before possible from SAS? Have you ever thought about how ODS can directly improve your daily activities and what it actually has to offer you as a programmer, statistician or manager? If you have ever had any of these questions about ODS, then this presentation is for you because it provides something for everyone at all levels. As a programmer, you can now create most any file types directly from SAS. In addition, the level of control and flexibility to format the output enables a higher degree of customization. As a statistician, you will want to take advantage of ODS for more efficient data analysis. The tools available in ODS facilitate multiple iterations of an analysis and ease of locating significant results |
proc step, proc tabulate, proc print, excel | source | 14 |
| 175 | SAS Programs to Select Controls for Matched Case-Control Studies | Robert S. Matthews, Ilene K. Brill |
For epidemiologic matched case-control study desi gns, SAS programs were developed to match cases (persons with disease/event of in terest) to controls (comparison group of persons without disease/event of interest). Matched case-control studies contro l for confounding by introducing stratification in the design phase of a study. Cases are individually matched to a set of controls (1:n ratio); n can vary from 1 to the desired number of controls for each case. Numbers of matched controls may vary dependent on the available controls possessing matching criteria. Selection of matched controls requires cases and controls to have similar values for important conf ounding variables defined as the matching criteria. Types of matching variables included within thes e programs are gender, race, year of birth/age at outcome. The programs illustrate nested matched case -control study design where cases and controls are chosen from larger retrospec tive cohort study populations | follow-up period, in=, macro variable | source | 9 |
| 176 | SAS with Style: Creating Your Own ODS Style Template for PDF Output | Lauren E. Haworth | Once you have started using the Output Delivery System, you will quickly discove r that your taste in output design probably does not coincide with the built in ODS styles shipped with SAS software. While you can edit your PDF output in Acrobat to improve its appearance, a better approach is to create your own style template. This workshop will take you step-by-step through the process of creating a custom style for your PDF output. You will learn how to make minor modifications, and how to give your output a complete makeover. If you would like all of your SAS output to be in hot pink with a gigantic script font, this workshop will show you how! Alternatively, if you would just like to use fonts and border s that coordinate with your corporate style guidelines, you can do that too. The workshop will also provide tips and tricks for taking advantage of the PDF destination |
proc step, sample, proc template, proc report, output delivery system, ods pdf, footnote statement, title statement, sas output | source | 20 |
| 177 | SAS with the Windows API | David H. Johnson | The core of the SAS language is written in C, which permits SAS to be readily ported to many operating systems. This is done by placing core SAS functionality over a layer that is specific to the Operating System (OS). Since the first release of SAS version 6, this layer has become progressively more transparent. More functionality at the OS level has become available to common SAS language and functions. However, there is a wealth of other OS functionality that can be accessed from SAS language and procedures with a little preparation on the part of the SAS programmer. This paper will examine some of the additional Windows functionality that we can access from within SAS code. From the techniques we examine, any Windows API should become accessible to us. If we compile our own DLLs for other processes, then these too will be accessible to our SAS programs | sysrc, dataset, missing value, sysdate9, sas function, txt, proc sql | source | 20 |
| 178 | SAS9 Changes and Enhancements | Dana Rafiee | This document is an excerpt from Destiny Corporation's Version 9 Changes and Enhancement course materials, Copyright 2005. It is designed to give a brief overview of what Version 9 has to offer. The primary goal of Version 9 is to provide support for a new level of computing that supports faster execution of applications, centralized access of data and support of the latest computing technology. These materials are designed as an overview of what is available and new and complement the online documentation that ships with the software | output delivery system, sas management console | source | 19 |
| 179 | SAS9 on Solaris 10: The Doctor is "In" (And makes house calls) | Maureen E. Chew | As physicians and hospital staff in our healthcare system are stretched by thin budgets and personnel shortages, individuals are being required to take their own healthcare into their hands by becoming mini-experts in specific health problems, often suggesting their own courses of treatment and medications. A similar trend is seen among SAS user communities faced with extremely constrained IT budgets and IT staff reductions. This paper targets both the Solaris novice and expert communities of SAS users who need to understand and diagnose application and system performance heuristics. SAS users new to or not yet familiar with Solaris/UNIX environments will learn basic tools for characterizing 75% of normal everyday performance bottlenecks. But the more experienced users will see the power of these unique new features of Solaris 10 and how these leading edge technologies can be brought in house, without requiring years of training | sas 9, sas management console | source | 16 |
| 180 | Sexy SAS/IntrNet: A Macromedia Flash Front-end for SAS Web Applications | John Leveille, Joey Leveille |
Many of us remember the "eureka" effect we experienced the first time we saw a SAS/INTRNET application come to life and connect SAS Software to the web browser. For some of us that was as many as seven years ago. Since that time, the landscape of the Internet has changed drastically. Web applications are everywhere and the capabilities of these applications, as well as the look and feel of their associated web sites, has steadily improved. The ubiquitous Flash player from Macromedia has emerged as a leading technology for developing next generation web sites and application user interfaces. With Flash you can leap beyond the limitations of the web browser and have a fast, dynamic, customizable user interface at your disposal. This paper demonstrates how you can utilize Flash functionality in order to create a dynamic, platform-independent web application that is configured and driven by SAS Software |
macro variable, sas programmer | source | 10 |
| 181 | Shuffling, Shifting, and Structuring Using the Program Editor | Gary E. Schlegelmilch | Invariably, when we go to a SAS programming class, we are taught the basics of how the language works and ways to lay out a program. The problem is that once we leave an academic arena and move into the professional one, we don't always develop the habits we need to write readable, maintainable code. Or, we inherit code that was written by someone else who never learned the skills and are required to update it for new requirements. In this paper, we'll discuss some of the basic structuring tools available within the SAS Program Editor window, and how to use them effectively. This will help even the most advanced programmer, as well as the novice in the business, to both write new code and to update outmoded, unstructured, and just generally bad coding | filename statement, dataset, data step | source | 7 |
| 182 | Simplify Existing Projects with Ideas from Data Warehousing | Rick Aster | data warehouse, raw data, data cleaning | source | 6 | |
| 183 | Single Event Timing Model with Heterogeneity: Predicting the Time of the First Home Purchase by Immigrants | Eugene Brusilovskiy | likelihood function, hazard function, proc freq, proc step, weibull distribution, predictor variable, maximum likelihood estimation, frequency analysis, gamma distribution, estimate, proc phreg, regression analysis | source | 9 | |
| 184 | Slicing and Dicing the SAS Data Set | William C. Murphy | Everyone knows how to get all of the information from on e SAS data set into another: ju st 'SET' the source data set to the output data set in a DATA STEP. Often all the observa tions in the source data set are not needed or desired. Most programmers would then use the FIRSTOBS and OBS options to limit the range of observations that they would input from the source data set. However, the SET statement has the ability to acquire data from the source data set in a non-sequential fashion. This random access of the source data set is accomplished with the POINT option on the SET statement. With this option, y ou can 'point' to and read in any observation in any order from the source and include the observation in the output data set. Using th is feature, small data sets can be created from huge data sets for program testing and debugging. In merging data, the POINT option can be used to combine data sets in ways that exceeds the ability of the MERGE statement |
set statement, point= option, do loop, macro variable, raw data, dataset, sample, macro loop, merge statement, proc step | source | 5 |
| 185 | So Now You're Using PROC REPORT. Is it Pretty and Automated? | Daphne E. Ewing, Ray Pass |
PROC REPORT will display data. That's a given. That it is more powerful than the standard SAS reporting tool PROC PRINT is also becoming common knowledge. But what can PROC REPORT really do? It is certainly more than a glorified PROC PRINT, but it does take some additional work beyond mastering some of the basics of the procedure before it can be used to produce output that can rival that of a serious DATA _NULL_ step. This paper will discuss the use of several customized macros that can work together with some PROC REPORT options, and standard SAS title and footnote statements, to make your PROC REPORT output really shine |
proc report, proc step, macro variable, footnote statement, sample, options statement, macro definition | source | 9 |
| 186 | So You Want to Be a Manager? - A Panel Discussion On Issues to Consider Before Aiming for a Management Career Path | Stephen M. Noga, Lauren E. Haworth, Andrew T. Kuligowski |
Are you thinking your next career move should be moving into a management position? Have you thought through all the pros and cons? This panel discussion will give you some things to think about before making that decision. The panelists have had different experiences. One panelist moved into management - and then moved out of management. Another juggles management responsibilities with coding responsibilities. The other panelist focuses on managing people and projects. The panelists will share their experiences and provide an opportunity for you to ask questions | sas programmer, data step | source | 8 |
| 187 | Software Testing Fundamentals-Concepts, Roles, and Terminology | John E. Bentley | SAS software provides a complete set of application development tools for building stand-alone, client-server, and Internet-enabled applications, and SAS Institute provides excellent training in using their software. But making it easy to build applications can be a two-edged sword. Not only can developers build powerful, sophisticated applications, but they can also build applications that frustrate users, waste computer resources, and damage the credibility of both the developer and SAS software. Formal testing will help prevent bad applications from being released, but SAS Institute offers little guidance related to software testing. For those unfamiliar with the topic, this paper can serve as a primer or first step in learning about a more formal, rigorous approach to software testing. The paper does not address any specific SAS product and may be appropriate for even experienced application developers | regression analysis, sample, data cleaning, stress testing, proc sql | source | 12 |
| 188 | Some UNIX Tips for SAS Programming | Jianming He | This paper focuses on using UNIX script for SAS jobs. T he authors give tips on handling tasks such as converting SAS log file back to source code if, for some reasons, t he source code is unavailable; using UNIX shell script to schedule tasks or email the programmer about the job status; and overcoming the limitation of space or time, etc. With the help of UNIX scripts, SAS programmer gains much more capabilities | sas log, create table, relational database | source | 4 |
| 189 | Speaking Klingon: A Translator's Guide to PROC TABULATE | Dianne Louise Rhodes | class variable, proc step, proc tabulate, ods rtf, proc format, proc freq | source | 14 | |
| 190 | Spicing Up SAS/IntrNet Applications | Jonah P. Turner | With the advent of SAS/INTRNET software, SAS programmers can extend their applications online to cross-platform, global end-users. The paper "A Pinch of SAS , a Fraction of HTML, and a Touch of JavaScript Serve Up a Grand Recipe," published in the SUGI 28 proceedings, provided an introductory approach to developing programs that function via the Web. The next paper in this series, "A Recipe for Success: Migrating SAS/AF Applications to the Web Using SAS , HTML, and JavaScript," issued for SUGI 29, expounded on the subject by offering a workable method for modernizing legacy SAS windowing programs. Whereas these both outline basic strategies for implementing Web-based systems, this third installment goes a step further by demonstrating a variety of techniques suitable for spicing up such SAS/INTRNET applications. Programmers can add more flavor to th eir SAS/INTRNET applications using the same ingredients by way of enriching procedure output and enhancing interface functionality. In particular, by addi ng vertical scrollbars to resulting tables, conditionally formatting output data, and embedding dynamic links that point to additional information or even call upon other programs, it is possible to design a more user-friendly and comprehensible Web application. Developers can also capitalize on certain programming routines to integrate both the front- and back-end processes of an Internet application into a single SAS program, thereby fostering a system that is easier to manage and remains up to date. Ultimately, these different techniques provide for an application design that caters to the usability and efficiency needs of all end-users and programmers alike |
macro definition, put statement, flag variable | source | 15 |
| 191 | SPM at 1 A.M. | Gary M. McQuown, Brett C. Peppe |
In order for SAS1 Strategic Performance Management to provide users with the most timely information, new data should be incorporated into the scorecards on a frequent and timely basis. This process involves extraction, transformation and loading (ETL) of the data, calculating the appropriate metrics, transforming the results into XML, and publishing the XML to the SPM scorecards. While each step in the process can be done manually, automating the process saves time and money and increases quality control. Therefore a data-driven automated process is the ideal means of providing the SPM user with the most recent and accurate data, while decreasing errors and overall costs. Topics covered include an overview of the automated SPM related processes currently utilized by the U.S. Coast Guard Deepwater project. Examples of the data-driven automation code, tips and tricks to keep the process running smoothly are included | macro variable, proc sql | source | 11 |
| 192 | Standardization through Macros: The Possibilities of Using Indirect Referencing to Macro Variables | Britta Kelsey | Have you ever wanted to write a macro and not have to specify input parameters? Have you wanted to write a global macro that can be used with different data sets without having to know the content of key variables? For example, in the pharmaceutical industry, standardization is always a goal. The same reports are repeatedly needed but the study data that is used in the reports is often slightly different with a different study design or different number of arms or cohorts. The macro facility is helpful in achieving standardization and one tool within this facility that makes this possible is indirect referencing to macro variables. It is a very useful and powerful concept but may not be well known to even the most experienced SAS programmers | macro variable, call symput, symbol table, dose, macro facility, macro loop, do loop, best response, clinical trial | source | 8 |
| 193 | Stationarity Issues in Time Series Models | David A. Dickey | The decision on whether analyze a time series in levels or differences is an important aspect of forecasting. Visual methods have been around for a long time. Relatively recently, statistical tests for the null hypothesis that the series is nonstationary, meaning that diffe rencing is required, have been developed. This paper reviews the development of these te sts, give motivating examples of why they are needed, demonstrates their use, and shows some other related procedures. The paper will be accessible to beginning level SAS TM programmers, but the reader should have a reasonably strong grounding in statistics | unit root, time series analysis, first difference, null hypothesis, proc arima, proc step, regression analysis, moving average, correlation, sample, f-test, proc reg, student t distribution, normal distribution, autoregressive model, proc calis, residual, stationarity | source | 17 |
| 194 | Statistical Analysis of Steel Formability | Arkady M. Kushnir | Medium carbo n steel structural grades of the hot rolle d plates and sheets are commonly us ed for deep drawi ng applications [1]. Crack ing on th e bend fa ces of steel is a major defect, which us ually causes reje ction o f t he sufficient volumes of steel. Crack resistance during deep drawing, depends of multiple metallurgical factors. Some of these parameters are: steel chemistry and thickness , microstructure and cleanliness, strength level and degree of restraint, etc. In so me cases, crack s also i nitiated, upo n bending a sh eared or bu rned edg e. Usu ally th is is n ot considered as a fault of the steel, but rather a function of the induced cold work or heat-affected zone [2, 3] | correlation, sample, regression analysis, pearson correlation, data science | source | 12 |
| 195 | Statistical Methods in Diagnostic Medicine Using SAS Software | Jayawant N. Mandrekar, Sumithra J. Mandrekar |
An important goal in diagnostic medicine research is to estimate and compare the accuracies of diagnostic tests, which serve two purposes 1) providing reliable information about a patient's condition and 2) influencing patient care. In developing screening tools, researchers often evaluate the discriminating power of the screening test by concentrating on the sensitivity and specificity of the test and the area under the ROC curve. We propose to give a gentle introduction to the statistical methods commonly used in diagnostic medicine covering some broad issues and scenarios. In particular, power calculations, estimation of the accuracy of a diagnostic test, comparison of accuracies of competing diagnostic tests, and regression analysis of diagnostic accuracy data will be discussed. Some existing SAS procedures and SAS macros for analyzing the data from diagnostic studies will be summarized | roc curve, diagnostic accuracy, sample size, degrees of freedom, sample, auc, macro call, proc logistic, regression analysis | source | 8 |
| 196 | Store Your Output and Digest It Later | Frank Poppe | The appearance of output can be made to conform almost exactly to your wishes, and for a wide range of destinations. The appearance is influenced by the ODS styles, and for the destination you can select one of the standards available (HTML, PDF, RTF) or generate new ones through a tagset. However, the order of the output is fixed. There is no way to move an overview table of results of different steps up front. You cannot start with a graphic that summarizes the results because the procedures have to run first. Within a procedure you cannot move elements around. This fixation of the output also makes the choices of style and destination final--when procedures have run, the output cannot be reproduced with another style, or for another destination, unless you preserve all the data. Now there is the DOCUMENT Procedure (experimental in SAS version 8, but now production) |
proc step, order by, by group processing | source | 8 |
| 197 | Storing and Using a List of Values in a Macro Variable | Arthur L. Carpenter | When using the macro language it is not at all unusual to need to manipulate a list of values. These may be a list of variables in a data set or even a list of data set names. Macro variables are often used to hold this list and there are a couple of storage options. Either each word of the list can be stored in its own indexed macro variable or, as discussed in this paper, one macro variable can be used to store the entire list. The macro variable that contains this list of values can be created in a number of different ways including through the use of the DATA STEP or PROC SQL. Once created, the user will often want to step through the list performing one or more operations on each of the elements in the list, and this is often accomplished using a combination of the %DO statement and the %SCAN function. This paper shows how to write a series of values to a macro variable and then how to take advantage of the list by utilizing it from within the macro language |
macro variable, macro loop, proc sql, character functions, macro function, proc step, macro facility, do loop, call symput, symbol table, macro definition | source | 6 |
| 198 | Stranded on a Desert Island with Nothing but TITLE Statements | Richard M. Mitchell | Imagine bei ng a SAS programmer strand ed on a d esert islan d with no programming tools e xcept for a handful of TITLE statements. When presented with the task of creating populated forms in SAS that closely resemble their original hardcopy format, many SAS programmers might wait years for a bottle to wash up on shore with the magical solution. There is no need to worry though, because this paper will discuss how one can ac hieve s uch a task using th e simp lest of program ming tec hniques. B y fu lly utilizing th e T ITLE statement along with basic CALL SYMPUT statements, users can avoid complicated programming and still create simple, decent looking reports that look just like they were intended to look | title statement, sas programmer | source | 6 |
| 199 | Stretching the Bounds of SAS/GRAPH Software | Michael S. Zdeb, Robert E. Allison |
This hands-on session will teach you how create graphics that you never imagined you could produce with SAS/GRAPH. You will learn some little-known, but very powerful, SAS/GRAPH tricks that you can use to create unique, custom, one-of-a-kind graphics. Some of the areas covered during this hands-on workshop are: using PROC GMAP to create custom 'maps' that do not represent geographical areas (silicon wafer 'maps', calendar charts, floor plans, textile fabrics, company logos, data grids); using the new device=JAVAMETA graphics device to produce animated charts and slide shows (the person viewing the output can stop, start, and control the speed of the animation to help explore the data in detail, not possible with old-style gif animations); using the Annotate facility in non-standard fashions (to put 'shadows' behind maps, emphasize 2-level of borders around regions in maps, fake transparent/shadow effects in maps); using the HTML= option to add custom CHARTTIPS (sometimes referred to as |
proc step, proc gmap, proc greplay, data step, macro variable, outlier, ods html, %if-%then-%else | source | 20 |
| 200 | Structured Neural Network Techniques for Modeling Loyalty and Profitability | Carl Lee, Tim Rey, James W. Mentele, Michael Garver |
Customer satisfaction and customer loyalty are related to key measures of financial performance for firms. The ability to find key drivers for predicting loyalty and profitability is an important step in developing marketing strategies that lead to high quality, long-term relationship with customers. Traditional techniques for modeling the network of cause- and-effect relationships related to loyalty and profitability such as structural equation models and partial least squares lack the capability of fitting the nonlinear and asymmetric relationships naturally existing in the loyalty-profitability network. This article presents a new technique namely structured Neural Network (SNN) technique for modeling loyalty and profitability and demonstrates an application for a chemical company | neural network, latent variable, rmse, regression analysis, mse, data mining, proc reg, customer satisfaction, response variable, data cleaning, multiple regression, logistic distribution | source | 13 |
| 201 | Summary Tables in SAS Enterprise Guide PROC TABULATE Made Easy | Susan J. Slaughter, Lora D. Delwiche |
This paper shows, step-by-step, how to use the Summary Tables task in Enterprise Guide to produce polished reports. Summary Tables is based on the TABLULATE procedure, but you don't need to know how to use PROC TABULATE or even how to write SAS programs to use this feature. Whether you are a seasoned SAS programmer or new to SAS, Summary Tables can make creating summary reports easier |
sas enterprise guide, proc tabulate, proc step | source | 10 |
| 202 | Tagset Spelunking and Cartography: Debugging and Exploring Tagsets with Battery-Powered Headlamps | Eric A. Gebhart | TAGSETS are perceived as a dark maze of twisty passages. But there are many ways to look inside and map the passages and their contents. The key to understanding and using the TAGSETS is knowing how to look inside. There are several simple methods that will shine the light on everything from the simplest of tagset changes to the creation of very complex TAGSETS |
proc step, missing value | source | 15 |
| 203 | Taming Transformation: A Strategy for Metadata within the Warehouse | Katherine Prairie | Extraction, transformation and loading (ETL) processes must change over time to accomodate evolving business and transformation rules. Many programmers handle this situation by creating different versions of their programs or routines. However, business analysts and decision-makers who rely on reports drawn from data warehouses must have access to such information as well. One approach is to store metadata relating to business and transformation rules in tables within the data warehouse. If handled properly these tables may be used to quickly generate documentation for business and technical staff alike. The SAS System SQL procedure and SAS/ACCESS can be used to provide an up-to-date record of parameters, and rules relating to transformation processes. These may provide the basis for inputs into the transformation processes themselves, or they may be used to generate current reports suitable for business and technical staff |
proc sql, proc step, key, sas base, select, output delivery system, data warehouse, libname statement, data validation rules, oracle | source | 9 |
| 204 | Teaching Data Mining in a University Environment | David A. Dickey | Experiences in teaching applied data mining techniques to university students already familiar with some statistical principles are reviewed. Additions to the standard fare of quick automated analyses of large data sets are emphasized. These examples link data mining techniques to the more classic statistical methods. SAS procedures from SAS/STAT and base SAS are used. The paper is intended for users with some statistical background and a beginning level knowledge of the SAS system |
data mining, logistic distribution, regression analysis, logistic regression, binary variable, proc step, proc freq, proc princomp, seasonality, macro variable, binomial distribution, predictor variable | source | 11 |
| 205 | Techniques for Effectively Selecting Groups of Variables | Stuart Pollack | Survey data often contains a large number of variables as each question's response is coded as a separate variable. It is often necessary to analyze groups of variables differently. This entails selecting different groups of variables from a data set containing many variables. When selecting a large number of variables it becomes impractical to write out hundreds of variable names. Different methods for efficiently selecting groups of variables are the topic of this paper. These techniques can be used in an array declaration, with a KEEP or DROP statement or in the VAR statement of any SAS procedure. The examples in this paper were generated using PC SAS version 8.2 on a Windows 2000 platform | data step, output, proc contents, proc step | source | 4 |
| 206 | Testing the Hypothesis of a Kroneckar Product Covariance Matrix in Multivariate Repeated Measures Data | Anuradha Roy, Ravindra Khattree |
We consider the problem of testing of a Kronecker product structured variance covariance matrix against the unstructured variance covariance matrix in the context of multivariate repeated measures data. A likelihood ratio test statistic is developed for this purpose. However, the test statistic for this test cannot be expressed in a closed form. An algorithm, is suggested for the maximum likelihood estimation of the variance covariance matrices to test the proposed hypothesis. The algorithm, developed by using IML procedure of SAS R⃝, successfully converged in all the data sets on which it was tried. The proposed hy- pothesis can also be in principle, tested in two stages by the use of MIXED procedure of SAS. However, it was our experience that PROC MIXED often fails to converge. Three real data examples illustrating the algorithm and calculations are also presented |
likelihood function, proc mixed, proc step, covariance, null hypothesis, repeated measures, degrees of freedom, maximum likelihood estimation, response variable, covariance structure, sample, proc iml | source | 11 |
| 207 | Tetris: SAS/AF Considerations | Richard A. DeVenezia | Game development has a long and proud history. You may have found the SAS menu Solutions/ Accessories/Games an interesting diversion. Can you guess who wrote "Dr. G's Blackjack"? I thought it was time to breathe some new life into this venerable category. This paper discusses design and implementation considerations encountered while building the popular game TETRIS in SAS/AF |
catalog entry, character variable | source | 10 |
| 208 | Text on My Remote Control: An Experiment in Shortest Distance Using SAS Software | Richard D. Langston | My DVD remote control has an interesting approach to addi ng text, and I thought it would be interesting to design a program to give me the optimal paths for entering text with the least amount of button-pushing. This program is primarily an exercise in shortest-distance algorithms using the DATA STEP |
source | 6 | |
| 209 | Text Utility Macros for Manipulating Lists of Variable Names | Robert J. Morris | When using data sets that have many variables, tasks such as mass variable renaming or generating table statements in PROC FREQ can involve lots of copy-and-paste and hand manipulation. This paper presents several text utility macros that can make these and other tasks easier to do the first time and easier to maintain later. The available macros include: counting the number of variables in a list, adding a prefix or suffix to each variable in a list, creating a list of variables that have a numeric counter suffix, and interleaving two lists of variables. One of the best features of the macros is that they can be combined and nested to allow even greater utility and flexibility. The paper discusses how to use each of the macros and provides examples of their use |
variable list, rename statement, proc step, proc freq, proc means | source | 7 |
| 210 | The Basics of Using SAS Indexes | Michael A. Raithel | dataset, index, by group processing, proc step, where statement, index creation, proc sql, modify statement, set statement, proc contents, cpu time, variable, libname statement, proc freq | source | 9 | |
| 211 | The Configuration Wizard: The Essential Final Step in Completing Your SAS BI Installation and Deployment | Alec S. Fernandez | SAS Business Intelligence (BI) Architecture provides a fram ework for effectively utilizing many different software packages from a variety of vendors and open-source provider s to form an enterprise-class platform. Beginning with SAS products, each software package is highly specialized toward performing a certain set of actions, ranging from running complex statistical models using SAS/ETS software, to running Java Server Pages (JSPs) on a Web server, to displaying interactive graphics on a Web browser. The SAS C onfiguration Wizard configures all the different parts of the SAS BI Architecture, which can then be deployed across many different hardware platforms and operating systems and function in concert as a cohesive, centrally managed system that enables each application to leverage the strengths of other applications |
sas management console, sas enterprise guide, data mining, sample | source | 11 |
| 212 | The Evolution of a SAS/GRAPH Application | Jenine Eason | proc gchart, bar chart, proc step, output delivery system | source | 6 | |
| 213 | The Mystery of the PROC SORT Options NODUPRECS and NODUPKEY Revealed | Britta Kelsey | The NODUPRECS (or NODUP) and NODUPKEY options can be useful with the SORT procedure but they can be dangerous if you do not understand them completely. They work similarly in that they both can eliminate unwanted observations, but NODUPRECS compares all the variables in your data set while NODUPKEY compares just the BY variables. Also, you must be aware of how your data set is currently sorted to eliminate the observations that you want because these options compare adjacent observations. In this paper, I will describe this in greater detail and show examples of how to use the NODUPRECS and NODUPKEY options. All examples shown were done in the SAS system for PCs, version 8.2. The intended audience for this paper is beginner level SAS programmers |
proc sort, proc step | source | 5 |
| 214 | The New World of SAS: Programming with SAS Enterprise Guide | Stephen McDaniel, Chris Hemedinger |
SAS Enterprise Guide (with its easy-to-use interface) has been a boon to SAS users, especially non-programmers. However, SAS Enterprise Guide provides some powerful new features that are geared toward the SAS programmer, including an integrated process-flow view of your project; the ability to create, publish, and execute stored processes; and an increased flexibility for output format and destination with the SAS Output Delivery System (ODS). This paper provides an overview and detailed examples of how SAS programmers can leverage SAS Enterprise Guide to create, organize, and execute their SAS programs |
sas enterprise guide, sas programming, sas programmer, bar chart, macro variable | source | 6 |
| 215 | The Pegboard Game: An Iterative SAS Program to Solve It | Richard D. Langston | The well-known pegboard game has been a fixture at restaurants to entertain customers, and I've never found that I could reduce the number of pegs to one. I decided to produce a SAS program to compute the necessary permutations and even added some extra twists. This presentation describes the algorithm | point= option, proc step | source | 6 |
| 216 | The Power of Table Templates and DATA _NULL_ | Cynthia L. Zender | Are you a DATA STEP programmer? Do you want to route DATA _NULL_ output to the Output Delivery System (ODS)? Do you want to convert classic DATA _NULL_ and FILE PRINT programs to take advantage of the ODS? This paper explains how to create and use a custom TABLE template with a DATA _NULL_ program. Through the use of concrete examples, you will learn how to become a power user of custom TABLE templates and DATA _NULL_. Topics covered include defining a new template, defining headers and footers, using GENERIC columns, and performing traffic-lighting based on data cell values |
macro variable, proc step, put statement, proc template, ods html, output delivery system, proc sql | source | 19 |
| 217 | The Rolling Stones Were Right (Time Is on Our Side): An Application of SAS Multiprocessing | Trang X. Lance | Previously, the SAS software is a single-threaded process, where a thread is defined as a list of instructions to perform a certain task. This process means that each individual SAS session thinks that it is running on only one CPU. In this single-CPU system, the processor is forced to assist in the input/output operations, which means it cannot perform calculations when I/O processing is taking place and vice versa. SAS Scalable Architecture (SSA) Version 9 now allows a single SAS session to leverage multiple I/O channels and multiple CPUs to drastically cut run-time for large jobs. SAS SSA is a tool necessary to leverage symmetric multiprocessor (SMP) architectures. Thus, allowing multiple process threads to execute in parallel on separate CPUs while sharing a common memory space | cpu time, sas 9, proc step, proc sort, parallel processing, data step, macro variable, distributed processing, sample | source | 11 |
| 218 | The SAS Data Step: Where Your Input Matters | Peter W. Eberhardt | Before the warehouse is stocked, before the stats are computed and the reports run, before all the fun things we do with SAS can be done, the data need to be read into SAS. A simple statement, INPUT, and its close cousins FILENAME and INFILE, do a lot. This paper will show you how to define your input file and how to read through it, whether you have a simple flat file or a more complex formatted file |
input statement, infile statement, raw data, data step, sample, date variable, character variable, sas log, cpu time, delimited file, dataset | source | 17 |
| 219 | The SQL Optimizer Project: _Method and _Tree in SAS 9.1 (broken file) | Russell M. Lavery | This paper discusses two little known options of SAS PROC SQL: _method and _tree. The main body of information, and the major opportunity to learn about the topics, exists in the heavily annotated appendix. Efficient use of this material might involve reading, and printing, this paper then working through the appendix. This paper will also attempt to describe some of the logic that the Optimizer employs. PROC SQL has a powerful subroutine, the SQL Optimizer, that examines submitted SQL code and the state of the system (file size, index presence, buffersize, sort order etc ). The SQL Optimizer creates a run plan for optimally running the query. Run plans describe executable programs that the Optimizer will create to produce the desired output. These executable programs can be quite complicated and often involve the creating, sorting and merging of many temporary files |
proc sql, inner join, proc step, create table, where statement, hash table, right join, full join, order by, proc sort, group by, left join, proc means, having, data step, cpu time, unique key, numeric constant, select, index | source | 57 |
| 220 | The University of Alabama and SAS Data Mining Certificate Partnership | J. Michael Hardin, Michael D. Conerly |
In March 2002, The University of Alabama (UA) and SAS developed a partnership whereby students who complete a sequence of four graduate-level courses can receive a joint Data Mining Certificate from UA and SAS. Recently, the opportunity to earn this certificate has been made available to MBA students as well. This presentation will discuss the data mining curriculum at UA and the advantages of the partnership with SAS. The market demands for students with this certificate and lessons learned in developing and implementing the program will also be covered | data mining, business intelligence | source | 4 |
| 221 | The Utter Simplicity and Power of the TABULATE Procedure | Daniel E. Bruns | proc step, class variable, proc tabulate, proc contents, missing value, proc format, label statement | source | 14 | |
| 222 | Through the Looking Glass: Two Windows into SAS | Peter W. Eberhardt, Richard A. DeVenezia |
How do you like your SAS? With a cup of Java or scooped by a .NET? It has always been true that with SAS there were many ways to solve your problems, but when it came to visual interface your options were limited. That changed in v8 with the introduction of SAS/INTEGRATION Technologies and the Integrated Object Model (IOM); SAS can now be seen through a myriad of windows. In this paper we will look at one problem and the SAS code to address it. The fun part is that we will show how this common SAS code can be accessed through two different environments - Java and Microsoft .NET |
sas log, sample, data step | source | 9 |
| 223 | Tips and Tricks: Using SAS/GRAPH Effectively | A. Darrell Massengill | SAS/GRAPH is a powerful data visualization tool. This paper examines the powerful components of SAS/GRAPH and highlights techniques for harnessing that power to create effective and attention-grabbing graphs. The components examined include the SAS/GRAPH procedures, gr aphical global statements, the Output Delivery System (ODS), graph styles, client-rendered graphs, and the Annotate facility. Complete programs using these components and techniques are provided and examined in detail |
proc step, proc gplot, catalog entry, proc gchart, output delivery system | source zip |
15 |
| 224 | Toward Effective Student Outcomes: Survey Data Analysis for Evaluation of School-Based Transdisciplinary Autism Teaming | Wendy B. Dickinson, Tanice Knopp |
"In the 1970's, researchers finally realized that autism- first described in the 1940s- is in fact a wide range of mental disorders, not a single illness, that afflicts children from birth, and often in profoundly different ways "(Stephenson, 2003, p.9). With better diagnostic procedures, increasing numbers of children are being identified as autistic. Florida public school educators must be prepared to meet the expanding educational needs of students with autism. The Transdisciplinary Autism Teaming purpose was to provide ongoing professional development and program development to school-based educators to meet more effectively the educational needs of special education students with multiple, complex problems, and to develop sustained changes in teacher behavior through exposure to the transdisciplinary model. During 2002-2003, six teams were funded at four schools | proc step, data science | source | 7 |
| 225 | Turning Raw Data into Polished Reports | Susan J. Slaughter, Lora D. Delwiche |
This paper shows how to turn raw data into polished looking reports. Starting at the beginning with reading your raw data file, we show how to sort and print your data, format data values, and add summary information to your reports. Using features of the Output Delivery System that are easy to learn, we also show how to create different types of output, and control style, font and color in your reports. With these techniques you can create reports that are attractive and draw attention to your main points to impress your boss or client | proc print, proc step, ods html, format statement, dataset, by group processing, proc import, user-defined format, proc format, ods pdf, date variable | source | 18 |
| 226 | Usability and Usability Testing at SAS | Paul Hankey | This paper discusses the effects of usability testing on the design and quality of SAS products. The first section gives an overview of usability testing, explains the place of usability testing in the development cycle, and discusses the roles that various individuals play in a usability test. The second section contains examples, including video highlights from SAS usability tests, to illustrate various concepts of usability testing | error message, final analysis | source | 6 |
| 227 | Using an Excel Spreadsheet with PC SAS, No Gymnastics Required! | Diane C. Hall | Do you regularly analyze data received in EXCEL spreadsheets using SAS? Do you wish for a single-step method for reading this data into a permanent dataset for analysis? This paper will show you how to include your EXCEL spreadsheet in SAS using FILENAME and INFILE statements. This method does not require that you first save your file as TAB delimited. You are able to use the file as you received it. This saves processing time for the user, especially if your source for these EXCEL spreadsheets sends new updated files frequently |
excel, character variable | source | 4 |
| 228 | Using Extreme Programming Processes in a SAS Environment | Brian Mitchell | The Food and Drug Administration has mandated that the software development life cycle be used to ensure the quality of software used to report results of clinical trials. This paper examines how one of the newer approaches used in commercial software development, Extreme Programming (XP), can be applied in a SAS programming environment to improve code quality and save development time. XP delivers quality software by stressing the accurate determination of user requirements and the robustness of the software product | proc means, dataset, sas programming, proc step | source | 5 |
| 229 | Using Perl As A Front-end For SAS Database Updates | John M. Shingler, Mollie Van Loon, Ken Rosenberry |
This paper presents an example of using Perl as a front-end "wrapper" for SAS code designed to process newly received data and add it to an established SAS database. This database is updated frequently, usually on a weekly basis. Cases can arrive in various stages of completeness. New information for existing cases can arrive at any time. The use of Perl as a wrapper allows for the manipulation of the various files used in the database updating process. Further, because the database structure and variables are often revised or altered, it is important to be able to run database updates under routine conditions without actually writing the new data to the database. Using Perl as a front-end provides a powerful wrapper for efficiently running such "Test" updates before going live with any programming revisions | error message, sample, dataset | source | 7 |
| 230 | Using Procedure-Based ODS Data Components in Statistical Reporting | Vincent J. Faber | The objective of this paper is to illustrate the use of the ODS (Output Delivery System) Data Component in SAS system procedures. It is designed to be an introduction for the elementary or intermediate programmer. I first provide a description of procedure -based ODS data components and discuss their applications. I then provide step-by-step instructions on how to extrapol ate results from procedures and turn them into data sets that can then be used for statistical reporting. For example, we can extract both the mean and the p -value from the TTEST procedure using ODS data components and produce a table to report means and a test for significance. Using a deidentified subset of a large national study of pregnant women, I will illustrate the u se of procedure - based ODS with five commonly used procedures: UNIVARIATE, TTEST, FREQ, GLM, and LOGISTIC |
ods output, output, logistic distribution, proc logistic, proc genmod, class variable, proc freq, proc glm, odds ratio, confidence interval, propensity score, proc univariate, where statement, data step, logistic regression, anova, raw data, regression analysis, proc rank | source | 10 |
| 231 | Using SAS Enterprise Guide in a Global Programming Environment | Karen Curran | sas enterprise guide, temporary dataset | source | 6 | |
| 232 | Using SAS to Automate Project Management Evaluation and Forecasting Techniques | Bryan K. Beverly | source | 6 | ||
| 233 | Using SAS to Detect Errors in X12-Arima Seasonal Adjustment | Nicole D. Brooks | This paper features Base SAS and the X12-ARIMA Seasonal Adjustment program developed by the U.S. Bureau of the Census to seasonally adjust m onthly or quarterly time series. X12- ARIMA commonly encounters problems with the time series used as input to the program and generate s errors when problems occur. This paper illustrates how SAS can be used to detect errors generated by X12-ARIMA an d to notify the user when these errors occur. In a production situation, X12-ARIMA is used to process a high volu me of time series in a limited amount of time. This paper focuses on using the INDEX functi on in the DATA statement along with the SAS macro facility to reduce the amount of time taken to detect errors when processing a large number of time series with X12-ARIMA |
error message, time series analysis, seasonal adjustment, index, sas log, macro facility, call symput, do loop | source | 3 |
| 234 | Using SAS to Estimate Proportional Odds Ratio Model for Meta-Analysis of Diagnostic Tests | Mir S. Siadaty, Jianfen Shu |
This work shows how we can use SAS system to implement the proportional odds ratio (POR) model (Siadaty 2004). POR is used to pool results of several studies together in a meta-analysis of diagnostic tests. It generalizes comparison of competing tests when there are two or more tests available for disease and each test has been studied in one or more papers and each paper might have studied more than one test. The POR uses odds ratio (OR) as performance measure, and makes no assumptions about the shape of OR0, a baseline function capturing the way OR changes across papers. The POR merely specifies a relationship between the ORs of two tests instead of assuming homogeneity of ORs. In this presentation, we will briefly introduce the POR model. The focus will be on how to use SAS/STAT on Windows to fit the model for a real example, and estimate the discrimination accuracy of competing tests. We will show some useful graphics to capture the numerical results |
odds ratio, nominal variable, proc mixed, logistic regression, estimate, logistic distribution, regression analysis, sample, main effect | source | 10 |
| 235 | Using SAS to Process Repeated Measures Data | Terry Fain, Cyndie B. Gareleck |
Data that contain multiple observations per case are called "repeated measures data." Common examples are medical records, credit card charges, and airline travel history. This tutorial will discuss ways to use the SAS DATA STEP to handle repeated measures data, in order to generate summary data for reports or for submission to analytic techniques (e.g., regression). We will address both horizontal repeated measures (using arrays) and vertical repeated measures (using RETAIN, FIRST., LAST., OUTPUT, and other SAS statements and options), as well as how to convert horizontally structured data to vertically structured data and vice versa |
repeated measures, longitudinal data, proc step, output, credit card, by group processing, proc print, sample, array, retain, do loop, format statement, proc contents, proc freq | source | 10 |
| 236 | Using SAS/GRAPH GMAP to Enhance a Diabetes Wellness Campaign | Barbara B. Okerson | The role of a quality improvement organization (QIO) is to assist healthcare providers in making successful and meaningful changes in the way care is delivered and in improving outcomes of that care. The ability to identify spatial differences in indicator rates, demographics, medical shortages, and technologies can help improve the efficiency of information delivery to and by healthcare providers. Geographical data analysis and display can be used to summarize spatial data, identify variations in performance by regions and providers and show performance trends over time through both static and interactive displays. This analysis can also be used to focus culturally sensitive and technologically delivered materials as well as assist in proposed solutions for identified unmet needs. SAS provides a comprehensive mapping tool through the SAS/GRAPH GMAP procedure for both geographic and non-geographic spatial displays |
proc step, proc gmap, dataset | source | 7 |
| 237 | Using SAS9 ODS Features to Present Table and Graph Data in an Adobe PDF File | Lori S. Parsons | An Adobe Portable Document Format (PDF) file is an ideal way to create and share data across different platforms and across the Internet. PDF is a universal file format that pres erves the fonts, images, graphi cs, and layout of any source document, regardless of the application and platform used to create it. A PDF file is also an especially good format for organizing large amounts of data. The SAS Output Delivery System (ODS) allows output to be printed directly to a PDF file. Both SAS procedure output and SAS/GRAPH output can be combined in a single PDF file. PDF bookmarks can be created to help the viewer navigat e the document. Starting in the SAS 9 release, ODS LAYOUT and ODS REGION can be used to define areas on the page where output is placed. This paper will describe how ODS can be used to produce, orga nize, and display output in a PDF file. New ODS options available in the SAS 9 release, such as ODS LAYOUT and ODS REGION, will be disc ussed |
ods pdf, proc step, proc tabulate, proc gplot, macro definition | source | 16 |
| 238 | Using Single-Purpose SAS Macros to Format EXCEL Spreadsheets with DDE | Perry Watts | While it is relatively easy to transfer data between SAS and EXCEL, it is a different story when it comes to format- ting spreadsheets to meet project specifications. Many workbooks with multiple spreadsheets may be required to complete an assignment, and formatting requirements for each sheet may be idiosyncratic. Manual formatting is onerous and time-consuming. Errors fr equently occur and frustration increa ses when they too have to be cor- rected. The single-purpose macros desc ribed in this paper enable the SAS us er to accurately format spread- sheets with ease. More specifically, positional param eters in X4ML (EXCEL version 4 Macro Language) are re- placed with keyword parameters in the SAS macro language. X4ML, a predecess or to VBA, (Visual Basic for Ap- plications) supports DDE (Dynamic Data Exchange), a legacy communications protocol accessible in BASE SAS |
excel, macro definition, data step, sas base, macro facility, put statement, macro variable, dataset, macro function, select, macro call, macro parameter, %macro parameters | source | 17 |
| 239 | Using the Proportional Odds Model for Health-Related Outcomes: Why, When, and How with Various SAS Procedures | Marc Gameroff | Health-related outcomes often possess an intrinsic ordering but fail to meet the assumptions usually needed to perform an ordinary least-squares (OLS) regression. When the distribution of scores is highly non-normal, as occurs when the majority of respondents score at the very bottom or top of the scale, ordinal regression can be more valid, and sometimes more informative, than OLS regression. In SAS/STAT version 9, PROC LOGISTIC allows one to fit a proportional odds model and to test the validity of interpreting significant predictors as affecting the outcome regardless of where the ordinal outcome might be divided into "higher" vs. "lower" scores. An example is provided based on an analysis of patient scores on the Sheehan Disability Scale, an oft-used outcome measure in mental health research. The model includes various mental disorder diagnoses as primary predictors and several sociodemographic variables as covariates |
logistic distribution, proc step, regression analysis, odds ratio, logistic regression, proc logistic, response variable, proc genmod, sample, ordinal logistic regression, likelihood function, maximum likelihood estimation | source | 8 |
| 240 | Using Variable Values to Change Macro Variables in Loop Processing | Michael G. Eberhart | SAS and the Output Delivery System (ODS) can make printed or web-based output processing easier and more productive. Creating multiple reports from a single dataset can be repetitive and time-consuming. Using macro variables and variable formats can simplify this process. Using macro processing and one DATA STEP, macro variable values can be used to name output files, limit observations in the dataset, and add titles to individual reports. The CALL routine can be used to facilitate this process |
macro variable, confidence interval, character variable, &variable, proc template | source | 6 |
| 241 | Using XML Mapper and XMLMAP to Read Data Documented by Data Documentation Initiative (DDI) Files | Larry Hoyle | Data Documentation Initiative (DDI) files are XML "codebooks" for social science data. A DDI file can describe itself, the conditions under which the data were collected, the data file format, and the variables in the file. SAS XMLMAP provides the capability for a SAS program to read these metadata from the XML file into a collection of SAS datasets. A SAS program uses this capability to write another SAS program that can read the data documented by the DDI file. This paper also describes how the XML Mapper tool was useful in developing the XMLMAP for this project | dataset, missing value, proc format, proc step, sample | source | 10 |
| 242 | Web Reporting Using the ODS | Jeffery D. Gilbert | This paper will explore HTML, and some introductory HTML coding, and then dig into the use of the Output Delivery System (ODS). In doing this, we will dive into create drillable reports. Of particular interest, we will dig into using labels and footnotes to create links, leading to a dynamic, drillable reporting structure. This paper assumes no previous knowledge of HTML reporting or ODS, but will build quickly to dynamic HTML reports |
ods html, sas base, output delivery system | source | 9 |
| 243 | What Would I Do without PROC SQL and the Macro Language? | Jeffrey M. Abolafia | proc sql, macro variable, proc step, macro facility, dictionary tables, length statement, select, by group processing, dataset, label statement | source | 5 | |
| 244 | Where to Go from Here: Learning More About SAS Software | Ginger Carey, Helen Carey - SC |
The vast amount of information on the SAS System, particularly that available through the web, can be overwhelming. Knowing where to find the information you need saves time and frustration. This paper is about the variety of information and media available and describes where to learn more about SAS | sas base, sas enterprise guide | source | 15 |
| 245 | Working Effectively with the Angry, Critical Client: Real-World Solutions to Help You Get the Job Done | Steven Flannes | The angry-critical client causes more personal anguish and work disruption for the knowledge professional than do complex technical problems. Interactions with angry-critical clients often leave us experiencing fear, anxiety, anger, self-doubt, and helplessness. These interactions also hinder our ability to concentrate and make solid technical and business decisions. Frequently, when faced with angry-critical clients, we withdraw or "give in," allowing project scope to expand inappropriately. In order to get the work done and to manage our careers (as well as our own emotional well being), we need to find ways to deal with the angry-critical client, regardless of whether we are dealing with an internal client or an external client. This paper will help you identify different types of angry-critical clients that you may encounter in your work, and will offer you specific, tangible tools that you can use to "manage the relationship" with this type of client | source | 15 | |
| 246 | XML Primer for SAS Programmers | Jack N. Shoemaker | XML is an SGML variant, which is an excellent messaging mechanism for passing data back and forth among applications. In this tutorial, we discuss XML in the context of SAS applications and how XML can be used in the preparation and presentation of data. We explore some of the features of XML that make it a good partner for applications that are based on SAS. This tutorial focuses on the tools that SAS provides for parsing XML documents so that the full power of SAS can be brought to bear on the manipulation and analysis of XML-encoded data. After a brief introduction to XML syntax, the tutorial will demonstrate how to use the newest XML features available in V9 of the SAS system. Particular attention will be paid to the XMLMAP option, which provides the programmer with great control over how a particular XML document will appear to SAS in terms of the number of tables and units of observation of those tables | dataset, libname engine, proc step, file statement, data step, libname statement, ods xml, output delivery system | source | 5 |
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