NESUG 2002 Papers - Index
128 papers. Source: NESUG (Northeast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | "Easy and Fast, or Not?" | Ming H. Chow | proc step, cpu time, proc freq, predictor variable | 6 | ||
| 2 | %Rtfsymbl - An Easy Solution for Defining Special Symbols in RTF File-Generating SAS Programs | Liping Zhang, Eric Qi, Weifeng Xu |
Defining special symbols in RTF file-generating SAS programs can be complicated. This paper introduces a macro which collects about 100 commonly used RTF special symbols classified by their types and functions, and defines each of them into a global macro variable. These macro variables can be used later in RTF file-generating SAS programs regardless of the platforms and operating systems. The macro is easy to use and does not require users to have any knowledge about the RTF code | macro variable, dataset | 2 | |
| 3 | %SYSFUNC: A Macro Variable Can't Function Without It | Chris Moriak | For many SAS programmers, the macro function %SYSFUNC is a mysterious, misunderstood macro function. There is not much literature on how to use %SYSFUNC. Also, the writings on %SYSFUNC have mainly discussed its use with external files, reading meta-data by opening a dataset, or formatting a macro variable. It is unfortunate that the literature does not proclaim %SYSFUNC as one of the most important tools to the macro language since the %LET statement. Macro variables simply cannot function without it, literally. The Problem While writing code with macros, how many times have you wanted to perform a Base SAS function on a macro variable? There were many times that I wondered why SAS stopped creating macro functions like %INDEX or %UPCASE. Would not it be great if one could use %MAX, %EXIST, or %INDEXW? I'm here to tell all SAS programmers, you can! %SYSFUNC allows one to perform nearly ever SAS function on one's macro variables |
macro function, macro variable, sas function, %if-%then-%else | 6 | |
| 4 | %WINDOW: You Can Talk to the Users and They Can Talk Back | Michael A. Mace | %WINDOW provides an elegant means to gather user criteria for customized or ad hoc reports. Some of the benefits are: only Base SAS is needed (no SAS/AF), there is only one program to write and maintain, and the end-user, mainframe or PC, never has to edit any code. Several examples will demonstrate gathering single and multiple choices per parameter and conditionally gathering criteria |
macro variable, %if-%then-%else, macro facility, macro definition | 5 | |
| 5 | <XML> at SAS | Anthony L. Friebel | At SAS, we use XML in several different ways. XML finds application as a persistence method in Vertical Applications, a query protocol in Warehouse Administrator software, an output form in SAS ODS software, and a data source in base SAS software. This paper will focus primarily on XML as a data source and the SAS XML LIBNAME Engine, which can be used to convert XML directly to SAS data sets |
sas syntax, libname engine, proc print, proc step, data step | 4 | |
| 6 | A Few Alternatives to IF-THEN-ELSE | Jonas V. Bilenas | IF-THEN-ELSE is a common logical syntax used in the SAS Datastep. We will examine alternatives to this logic that will streamline code. Examples include user defined formats and logical expressions. Efficiency comparisons will be provided for these alternatives as well | proc format, proc step, select | 2 | |
| 7 | A Journeyman's Reference: The Writing for Reading SAS Style Sheet: Tricks, Traps, Tips, and Templates, from SAS-L's Macro Maven | Ronald J. Fehd | A program is a form of communication that occurs in two distinct and vastly different events: the first event is immediate, when the program is submitted to the language processor for execution; the second event takes place at a later time, when the writer or another programmer returns to read that program for maintenance. A good style sheet can facilitate program maintenance. This is especially important when simultaneously writing in two languages: SAS and its macro language. This paper discusses elements of a style sheet for SAS programmers. The intended audiences are intermediate SAS programmers and beginning macro programmers | macro facility, macro definition, macro variable, %if-%then-%else, data step, proc step, macro loop | 5 | |
| 8 | A Practical Approach to Create Clinical Summary Tables | Jiang Jin | The PROC REPORT has been known as one of the most powerful and user friendly procedures in clinical trial study summary table writing. According to the SAS user manual, columns covered by across variables contain only numeric variables. The preferable alternative of selecting ACROSS usage in the DEFINE statement in PROC REPORT has not been practiced by many SAS users. Min Fu introduced a new method to use ACROSS to cover character variables in "Using ACROSS Variable in PROC REPORT PROCEDURE" on NESUG'96 Proceedings. Following the suggestions as documented in Min Fu' coding examples, this paper provides the answer to many detailed problems in using ACROSS usage and makes it a practical |
proc step, proc report, proc transpose, clinical trial | 2 | |
| 9 | Adding Application Level Security to the SAS World | Michael E. Tomb, James R. Carter |
This paper describes the process of adding a custom application security layer to an existing and extensive SAS application. The original application was built using both SAS/FSP and SAS/AF . The new security layer was designed to comply with stringent corporate guidelines and supplies all of the expected functions (such as password policies and intrusion detection) to the Application Administrator. One system component uses SAS/SHARE to control group level access to SAS libraries. Another relies on macro level SAS communication with a specially designed DLL to support on-the-fly decryption of SAS datasets for authenticated users. One of the several interesting tools created for the task is a SAS/AF application that crawls through catalogs and folders containing SCL and BASE SAS source code. The tool uses a SAS language parser to substitute specially designed security aware macros and SCL classes for all methods of defining creating and accessing SAS libraries and datasets |
sas base, dataset, sas library, audit trail | 8 | |
| 10 | Advanced SAS Macro Language Techniques | Destiny Corporation (a company) | This paper w ill demonstrate the advanced uses of the macro language within the SAS system. These include interaction bet ween the dat a step and SAS macro language, dynamic creation of programs (which write themselves based on the incoming data!), use of %DO/%END loops, and advanced SYMPUT/SYMGET techniques. You w ill emerge with an understanding of macro language internals and enough new jargon to impress your co-workers. We anticipate that you will have been using macros for a minimum of one year | macro variable, call symput, proc step, data step, proc sql, symbol table, macro facility, proc append, proc freq, dataset, macro definition, if-then-else, macro loop | 5 | |
| 11 | Advanced SQL Processing | Destiny Corporation (a company) | This session will bring att endees through advanced uses of SQL, including HAVING, FULL JOIN s and creation of Views, Indexes, and Data sets. The joys of re-merging and sub-queries w ill be intr oduced and you w ill gain an understanding of the relative merits of PROC SQL and SAS base. Finally, we will touch on some of the debugging tools available with PROC SQL. We assume that you will have at least one year of experience with SQL |
group by, proc sql, proc step, order by, sas programming, proc means | 7 | |
| 12 | An Animated Guide: A Map of the SAS Macro System | Russell M. Lavery | As all SAS programmers should understand the Program Data Vector, SAS macro programmers should understand the Map of the Macro Facility. The map is a powerful conceptual tool for understanding the macro process | macro definition, macro facility, macro put, macro variable, symbol table, macro catalog, txt, %if-%then-%else, proc step, macro call | 9 | |
| 13 | An Animated Guide: Data Step Debugger | Russell M. Lavery | Use of the DATA STEP Debugger (DSD) simplifies the job of debugging code and, while the DATA STEP debugger (DSD) was introduced in SAS version 6.11, it is not widely known. It is a powerful tool gives you control over the execution of "DATA STEP" code and allows you to watch your program execute- line by line. The DSD allows you to watch if-else statements execute and check if the code is correct while the code is running, rather than checking by writing PROC PRINT statements after the DATA STEP stops running. The DSD allows you to not only watch code execute, but will allow you to MANUALLY CHANGE the values in the program data vector as your job is running. This paper accompanies an animated presentation done at NESUG. It will, statically, outline the features of the DSD that were animated in the presentation. More material is in an excellent article (which is free and available on-line SUGI 23 paper 25 How to use The DATA STEP Debugger by S. David Riba) |
data step, if-then-else | 4 | |
| 14 | An Animated Guide: Matching Test & Control Subjects | Russell M. Lavery, Glenn Abrahamsen |
Matching of similar test and control subjects is a part of the experimental process in many disciplines. It is done to reduce sum-square error and selection bias, a threat to internal validity of the experiment. The correct experimental process is to match subjects and then randomly assign one of each pair to be a test subject. Occasionally a researcher will be given a group of test subjects and told to find matching controls. While the | distance measure, proc sql, sample, regression analysis, order by, euclidean distance, missing value, randomization | 21 | |
| 15 | An Animated Guide: Power Merging with Key/_IORC_ Merges | Russell M. Lavery | The key mege (A.K.A. _IORC_ merge) is an efficiency technique. It is a method of merging two files without having to perform a slow, and disk-space-consuming, pre-sorting of the files. Because this merge does not require pre-sorting of the files to be merged, it is faster and uses less disk space than a by merge. The __IORC__ merge is considered one of the "Table Lookup Techniques" and as such is a competitive technique for "by merges", formats, if-else if blocks, key-indexing, bitmapping, hashing and SQL joins. It is a useful technique for SAS programmers because it is fairly fast (faster than a "by merge") and easy to understand. Additionally, __IORC__ merging is part of the material in the SAS certification exam. This paper accompanies an animated presentation at NESUG and can not duplicate the animated effect. It will outline the features of the _IORC_, as were presented | set statement, lookup, data step | 5 | |
| 16 | An Animated Guide: Speed Merges with Key Indexing, Bitmapping and Hashing | Paul M. Dorfman, Russell M. Lavery |
Table look-up is the most time-consuming part of many SAS programs. Base SAS offers a rich collection of built-in searching techniques. Merging, SQL joins, formats, SAS indexes - all serve the purpose of locating relevant data. For custom programming, SAS offers arrays, whose direct addressability lends itself to implementing just about any searching algorithm. Array-based lookup is not a ready-to-go food; it has to be cooked at home. However, it may result in dishes digested by the computer more easily, more programmatically nutritious, and with fewer computer resources ending up in the garbage disposer. This paper shows how arrays can be used to organize the fastest class of in-memory table look-up -- direct-address searching. Three such techniques -- key-indexing, bitmapping, hashing -- are considered in a logical sequence using a real-life example of matching two data files by a common key | hash table, key, missing value, memory usage, temporary array, proc sql, conditional do loop, character variable, array, do loop, sample, data wrangling, sas programmer, proc freq, dataset, data merging, lookup, hashing function | 10 | |
| 17 | An Automated Reporting Macro to Create Cell Index - An Enhanced Revisit | Shi-Tao Yeh | When generating tables from SAS PROC TABULATE or PROC REPORT to summa rize data, sometimes it is necessary to produce a cell index as part of the data display. A cell index is simply a data listing that reports the summarized count of each cell shown in the table. This topic was presented and discussed at NESUG'01 Conference [1]. Several enhancements have since been made resulting in a major modification of the original code. It provides an automated SAS reporting macro to generate a cell index with several new features. The design goal for this program is to provide an efficient, flexible and easy-to- use macro. The SAS product used in this paper is SAS BASE, with no limitation of operating systems |
macro definition, proc report, proc step, macro parameter, nominal variable, macro call, %if-%then-%else | 5 | |
| 18 | An Explicit Functional Form Specification Approach to Estimate the Area under a Receiver Operating Characteristic (ROC) Curve | Paul Stober, Shi-Tao Yeh |
The Receiver Operat ing Characteristic (ROC) curve is a curve presented in a probability scale graph and is used to judge the discrimination ability of various statistical | roc curve, logistic distribution, macro definition, proc step | 5 | |
| 19 | Calling External Compiled Code into SAS with Application to Clinical Trial Safety Analyses | Eric Qi, A. Lawrence Gould, Liping Zhang, Weifeng Xu |
Sometimes it is necessary to use programs external to the SAS system to perform analyses that cannot be performed efficiently or cannot be performed at all using SAS. The SAS CALL SYSTEM routine can be used to carry out such a task. This paper presents an example of using the SAS CALL SYSTEM routine to include an external compiled Pascal program for performing statistical analyses of clinical trial safety data | adverse events, clinical trial, txt | 3 | |
| 20 | Capturing SAS Macro Code into an Executable SAS Program | David Jemiolo, Paul M. Gilbert |
Every day SAS users utilize SAS macros developed by other programmers or statisticians. There are often times when it is useful to store the resolved executable code produced by a macro, either for reference purposes or for later re-execution. For users in the pharmaceuticals industry it may be necessary to deliver 'standalone' executable SAS programs to regulatory agencies. Another situation is where a SAS program, utilizing several SAS macros, developed years earlier, needs to be updated. Storing and modifying the resolved SAS code may be an easier process than updating the original macro. This paper describes a method for capturing, formatting and storing resolved 'mprint' SAS code from a program invoking SAS macros | macro variable, ods listing | 2 | |
| 21 | Clinical Trial Online - Running SAS on the Web without SAS/IntrNet | Quan Ren | During clinical trial, it is very important for the project management to have the most recent updated clinical trial information. The best solution is dynamic access to clinical trial data: dynamic data management and dynamic data analysis. SAS System almost became a standard programming language in clinical data analysis. With the development in Internet, people have been exploring every technical possibility to use SAS System to manage and analyze clinical trial data dynamically through Internet. SAS/INTRNET software has pr ovided an opti on to use SAS System through Internet. However, there is an additional cost. This paper will pres ent another wa y to use SAS System through Internet without SAS/INTRNET. An experimental example - Clinical Trial Online will be presented. Through Clinical Trial Online , the following technique will be demonstrated: 1. Remote data entry, data browsing and data editing through Internet. 2. Running SAS programs remotely and bringing the |
adverse events, clinical trial, proc means, data science, survival analysis, anova, vital signs | 7 | |
| 22 | Creating a Generic Data Listing Macro in Three Days or Less | Chris Moriak | Writing PROC REPORT calls is an effective method for making presentation-ready listings. Or is it? First, writing PROC REPORT calls requires knowledge of PROC REPORT. Second, a PROC REPORT call can be a lengthy ordeal with specifying the column information, followed by all the DEFINE statements. Thus, they do not lend themselves to be generic, reusable code. Third, variables with long lengths cannot be printed without a DEFINE statement, and PROC REPORT will split the column header within a word if the word is longer than the length of the column width. Your assignment: create a generic data listing macro that delivers presentation-ready reports. It must have many of the capabilities of traditional PROC REPORT listings without requiring the user to know PROC REPORT. It must be generic enough to be used for most listings, and must address all of the above issues. Oh, and we need this macro in three days |
proc report, proc step, macro variable, numeric variable, character variable, proc print, sample, class variable, macro call, proc contents, user-defined format, macro loop, proc sql, where statement | 10 | |
| 23 | Creating Dynamic Reports Using Data Exchange to Excel | Liping Huang | The ability to generate flexible reports in EXCEL is in great demand. This paper illustrates an automated and easily managed process to calculate basic elements of a report, such as frequencies and means. The process also performs some basic statistical analysis to organize results and automatically generate a report based on a pre-designed EXCEL template |
excel, dataset, proc freq, macro variable, proc step | 6 | |
| 24 | Creating Java Based Applications | Destiny Corporation (a company) | dataset, advanced sas | 11 | ||
| 25 | Creating Multiple Graphs and Linking to A Dynamic Map Using SAS ODS/GRAPH/GMAP/MACRO | Trang Q. Nguyen, Linh H. Le |
In this paper, we will try to demonstrate our experience on using SAS ODS combine with using SAS/GRAPH and MACRO to create Web pages of multiple graphs. By using SAS ODS and GMAP, a dynamic map will be created, in which different areas of the map will be linked to these graphs. The use of SAS ODS plays very important role in these procedures |
proc format, ods listing | 3 | |
| 26 | Creating Textual Web Reports with Graphics Using a Variety of SAS Programming Tools | Mary Ellen Davis, Nicholas Spanos |
A few years ago, the programming staff of the American Community Survey at the U.S. Census Bureau was asked to produce Narrative Profile reports for display on the internet. Narrative Profiles are easy-to-read reports that use plain- language descriptions and representational graphs to summarize information on a wide array of subjects using words, rather than numbers. Newspaper reporters, grant and loan applicants can quickly obtain information on key topics important to their community, and simple charts and graphs illustrate changes in those communities. This report was first produced for a small number of geographic areas and is now produced for more than 800 geographic areas. A variety of SAS tools are used to produce these reports. A report template and a set of formulas are the foundation on which the textual Web reports are built. The entire report template containing text, numbered place holders, and HTML tags is converted to a SAS dataset | proc gchart, do loop, bar chart, proc step, data step, tranwrd function | 10 | |
| 27 | Creative Applications of SAS/GRAPH in Reporting Outcome Data | Susan Greenberg | This poster illustrates creative techniques within SAS/GRAPH. Some of the plots developed look like charts using the interpolation needle option. Annotation bars and plot symbols on other plots help us capture visual variability and identified means. You will see four plots on a page that are titled for each respective plot. Additionally, SAS datasets are transported to EXCEL spreadsheet using Dynamic Data Exchange, DDE. Project Goals For three years the Rochester Early Child Assessment Partnership has worked with over 450 prekindergarten classrooms and 6000 students and their parents in urban Rochester, New York. The project's mission is to evaluate the quality of classroom environment, the impact of quality prekindergarten center care on academic and socio- emotional outcomes, and the implementation of universal prekindergarten in Rochester. Universal preschool is a national policy under discussion at both Federal and State levels |
proc step, proc gchart | 2 | |
| 28 | Creepy Characters | Elizabeth Axelrod | SAS formats are extremely useful for categorizing and grouping ranges of values, but there are situations that can yield unexpected results. This paper illustrates several very creepy results, and cautions the user when identifying character ranges | char., proc format | 2 | |
| 29 | Data Integration - Can It Be Automated' | Jacksen Lou, Hong Qi |
Data integration, known in the pharmaceutical world as ISS (Integrated Summary of Safety) and ISE (Integrated Summary of Efficacy), is a multi-latitudinal task, and is well recognized for its tediousness and time-consumption. Therefore, it is desirable to automate such a time-consuming task so that a routine process can be developed. Is this wish realistic or achievable to a certain degree? This article tries to answer this question by analyzing the components involved in a data integration process, and by presenting a macro solution for the integration automation. The solution takes the variable attribute segments from a standard data set and uses them as blue prints to re- construct another data set, which paves the way for data integration. Key Words: data integration, automation, ISS, | data integration, length statement, macro definition, %if-%then-%else | 5 | |
| 30 | Date Handling in the SAS System | Bruce F. Gilsen | date variable, sysdate9, numeric variable, character variable, raw data, input statement, options statement | 10 | ||
| 31 | Debugging 101 | Peter Knapp | missing value, proc step, proc print, input statement, run, error message, character variable, merge statement, date variable, sum | 10 | ||
| 32 | Don't Be a Slave to Your SAS Programs | Marje Fecht, Larry Stewart |
Do you spend a lot of time updating your programs to adjust inclusion criteria? Do your programs run forever while you patiently wait? This beginning tutorial focuses on maintenance - free, efficient coding techniques so that you can spend your work time being more productive! Topics include: § macro coding techniques § efficient programming tips § code reduction tricks § maintenance-free programming suggestions | proc sort, proc step | 2 | |
| 33 | Don't Resort to Re-Sort | Elizabeth Axelrod | You have a huge dataset, happily sorted by one or more keys. But you need to modify your key fields on a relatively small number of records, which will result in an un-sorted file. This paper presents a quick way to re-sort your file ... without re- sorting your file! The Problem You have a huge dataset - lots of records and lots of variables - and it is happily sorted by one or more keys. But you discover that some of these keys must be modified. If you modify or update these keys, your file will no longer be sorted. And you really don't want to sort this whole file - again! The real data I was using contained eligibility information on millions of Medicare beneficiaries, and the IDs which uniquely identify an individual are 11 characters long. There are circumstances in which a Medicare beneficiary's ID can change over time, and this requires updating some IDs, using a technique referred to as 'cross-referencing'. But wait - this is not a lesson in Medicare data | order by, out= | 2 | |
| 34 | Efficiency and Quality Control in the Preparation of a Preparing Statistical Review Aid in FDA e-Submissions | James Wu, Frederick A. Cieri, Amy Gillespie |
This paper discusses efficiency and quality control in the preparation of a statistical review aid for electronic submissions. A statistical review aid, that is prepared for the Food & Drug Administration (FDA)'s reviewing statisticians, may include analysis datasets, analysis table programs, and associated data/program definition documents. These deliverables can be prepared fully manually, automatically with manual touch-up, or fully automatically. Automation reduces the preparation time, and more importantly, detects errors easily, thus, ensuring better quality. Tools to automate table and document generation were developed by using a series of SAS macros, batch programs, and MS-WORD macros. Recent experiences indicated that these automation tools reduced the time to prepare the statistical review aid from 21 days to 7 days while improving the level of quality | quality control, macro definition, data science, data cleaning, csr, clinical trial | 4 | |
| 35 | Estimating Confidence Intervals Around Relative Changes in Outcomes in Segmented Regression Analyses of Time Series Data | Fang Zhang, Anita Wagner, Stephen B. Soumerai, Dennis Ross-Degnan |
Controlled, interrupted time series is a strong quasi- experimental desi gn in creasingly u sed in he alth policy resea rch. Segm ented line ar regressio n analysis of time se ries data allo ws analyst s to estimate policy effects, expressed as the estimated absolute differen ce at a particular time point between the outcome of intere st with t he policy and in the a bsence of the poli cy, as well as th e percentage chang e in this outco me. The SAS AUTOREG pro cedure allows estimation of segmented linear regression models, controllin g for autoregressive effect s, a s the se mo dels re quire. However, d ocumentation on confide nce inte rval estimation a round a bsolute an d rel ative effect estimates is lacking. We used a multivariate delta method to estimate th e variance of rel ative ch anges i n o utcome fro m segmented autoregressive models | time series analysis, confidence interval, regression analysis, proc reg, interval variable, time series data, likelihood function, proc mixed, maximum likelihood estimation | 7 | |
| 36 | Focusing on Our New Deliverables--CRT and Analysis Data Sets | Phebe Joseph | The new guidelines for electronic submissions have significantly impacted the work involved in supporting drug-related submissions to regulatory agencies. This has consequently changed the nature of work done by statistical programming teams in the pharmaceutical industry. The team's focus has shifted from merely producing summary tables, listings and figures to producing output that facilitates an electronic submission. This has brought about an increased attention to derived datasets, thereby moving towards a more data-centric process. This paper presents a brief historical account of some of the significant milestones that have led to fully ele ctronic regulatory submissions. It discusses the impact of these changes and also highlights the CDISC efforts to standardize the development and documentation of derived datasets. The importance of devoting utmost care and time to ensure the consistency a nd integrity of the new deliverables - the CRT and analysis data sets is emphasized | adam dataset, regulatory submission, macro variable, proc step, macro definition, cdisc | 8 | |
| 37 | Forecasting with the Time Series Forecasting System in SAS/ETS | Charles B. Hallahan | sample, first difference, time series analysis, unit root, dataset, model training, partial autocorrelation | 6 | ||
| 38 | From Plot to Gplot | Wendi L. Wright | This poster presentation will show you how to improve the look of your plots. The Plot and GPLOT procedures will be reviewed as well as the Axis, Symbol, Legend, Ti tle and Footnote statements |
proc step, proc gplot | 10 | |
| 39 | Get With the Validation Program - Successful Steps to Edit Check Failures | Michael Rea | Database Validation is in its own class in the SAS programming arena. Some edit checks are very simple to implement, others can be very complicated. The logic is very different when compared to other SAS applications such as programming tables or listings. This can only be improved upon with hands -on experience. Having more tools at your disposal can be very helpful however. This paper will cover how to approach some of the more complicated issues that arise in edit check programming. The goal of the paper is to give beginning programmers or programmers new to database validation additional tools to program edit checks efficien tly. These techniques will be demonstrated through a coding example | data validation rules, data cleaning, retain | 2 | |
| 40 | Getting Oracle Data into SAS Datasets | Alexa Parliyan | ODBC? SAS/ACCESS? Confused? To access an Oracle database from a SAS program requires only a few, simple set-up tasks. This paper will give you step-by-step instructions on how to create SAS programs that report on Oracle data, using the author's own experiences in a Windows PC environment |
oracle, proc sql, oracle access, create table, libname statement, proc step | 3 | |
| 41 | Give Your Clients What They Want: Fill Report Tables with the SAS System and DDE | William C. Murphy | Whether generating data listings, creating summaries, or reporting on statistical analys es, information delivery to our clients is our real goal. To accomplish this, we first design report table templates in Microsoft EXCEL and then fill them with data from the SAS system. This combined approach gives us the power of the SAS system for dat a manipulation and management and the formatting capability of Microsoft EXCEL for presentation. For our clients it produces 'prettier' tables and allows them to 'play' with the data. To populate the tables, we use the dynamic data exchange (DDE) capabil ities of the SAS language. Coupling DDE with macro programming, we are able to automate the process and readily revise tables if necessary. In the following, we will describe the table creation process from the template design to the data filling. In particular, we will detail a macro program that can readily be modified to fill almost any spreadsheet table, however convoluted |
excel, put statement, macro variable, sample, macro definition | 3 | |
| 42 | Graphical Presentation of Survival Analysis | Joanne C. Zhou | Survival analysis and graphical presentation of the survival analysis | proc step, survival analysis, macro variable, median survival, proc gplot, proc greplay | 5 | |
| 43 | gVim 6.x, An Alternative to the Display Manager Editor | Adeline J. Wilcox | gVim is a free text editor of interest to SAS users because it offers many powerful features and SAS syntax highlighting. Although gVim runs on many operating systems, gVim will be of special interest to users of both SAS and vi trying to work in a PC environment running Microsoft Windows. gVim runs under 9 releases of Windows. gVim has a graphical user interface with mouse control, t ext selection, and menus. Like Vim, it was developed by Bram Moolenaar. Vim (Vi IMproved) is his improvement of vi, the powerful text editor found on UNIX systems. Because gVim recognizes when SAS log and listing files have been updated by execution of another SAS batch run, running 3 gVim windows, one each for the SAS program, log and listing, can be an efficient means of running SAS batch on a PC. Powerful vi features can be used to search the SAS log and listing after each successive SAS batch run. This poster will address printing issues and identify resources for prospective gVim users | sas log, sas batch | 2 | |
| 44 | Harness Some V8 Power for Your Office | Peter W. Eberhardt | There is a common need to provide read access to data residing in SAS tables. This tutorial will introduce some components of SAS Integration Technologies, then show how to use these components to get SAS data into a MS EXCEL spreadsheet - in some cases, without the need for SAS on the user's computer. This tutorial is geared for any SAS programmer who has a good grasp of |
excel, sas library | 9 | |
| 45 | Hot-Deck Imputation: A Simple DATA Step Approach | Lawrence W. Altmayer | Hot-deck imputation is a m eans of imputing missing data using the da ta from o ther observ ations in the sam ple at h and. This paper deals with a method of imputation we used for the Survey of Adults on P robation (SAP). W e first a ttempt to im pute missing demogr aphic valu es base d on oth er variables supplied by the same per son. If that technique fails, we impute missing race, age and gender values by using values supplied b y others, from previous or subsequent observations in the data set. This method uses macro variables to subset the data in to groups within which the imputation is done. It uses arrays to keep track of the values used for each imputation | imputation, macro variable, sample, data step, call symput | 8 | |
| 46 | How Many Oracle Tables Does It Take to Create One SAS dataset' | Jennifer Price | This paper will review the process of obtaining oracle data using SAS LIBNAME statements and using this data to create a SAS datset. As anyone who has tried this will testify, this process is not as easy as it sounds. To create one SAS dataset, metadata from several oracle tables are required. Data resides in one table, format names in a separate table and labels in yet another table. This paper will document how a single SAS file is created by patching together information from several oracle tables |
dataset, label statement, macro variable, sas library | 3 | |
| 47 | How to Incorporate Old SAS Data into a New DATA Step, or "What is S-M-U?" | Andrew T. Kuligowski | S-M-U. Some people will see these three letters and immediately think of the abbreviation for a private university and associated football team in Texas. Others might treat them as a three-letter word, and recall a whimsical cartoon character created by Al Capp many years ago. However, in the world of the | dataset, set statement | 9 | |
| 48 | Identifying Duplicate Key Values | Roger Staum | In many SAS data sets, observations must have unique values on their key (identifying) variables in order to maintain data integrity. This paper presents several ways to handle duplicate key values, and compares them with respect to ease of use and efficiency | 2 | ||
| 49 | Improving Upon Success: An Integrated Healthcare Business Solution | Craig Dickstein, Christopher Yindra, Alan Dickson |
Starting with a newly desi gned da ta mart, populated fro m the data warehouse, the po wer of the native RDBMS wa s tapped. All owing the RDBMS to d o the heavy lifting based on SQL joins to u ser maintain ed data drive r tables provided a framework fo r the tightly integrate d system desi red. For mai ntainability by the IT support fu nction an d e ase of u se by the business u sers, all fu nctionality wa s ne atly wrapped in appropriate SAS System code. Business solutions of tod ay require deliverables for multiple constituencies of an org anization. HEDIS (He alth Plan Employer Data and Information Set), a set of stand ardized performance measures that assess the quality of health care services provided by managed care organizations, exemplifies this axiom. HE DIS reporting sy stems in th e he althcare indu stry have focused needs for data managers, disease management units, servi ce delivery an d quality assurance t eams, and information reportin g analysts | proc sql, data mart, data validation rules, insurance claims, parallel processing, proc step, odbc connection | 10 | |
| 50 | Integrating SAS and Microsoft Office for Analysis and Reporting of Hearing Loss in Occupational Health Management | George Bukhbinder, Mark Nicolich |
Evaluating the effectiveness of hearing conservation programs is an important part of occupational health management (OHM). Palisades Research, Inc. recently developed a data management and reporting system that provides access to historical audiometric data, performs analysis and creates a number of important audiometric measures. The system's analytical engine, which is written in SAS code, downloads data from a Microsoft SQL Server operational OHM database, performs data manipulation and calculations, and creates EXCEL reports and pivot tables on the company's shared drive. This system was implemented at ExxonMobil Corporation. It performs analysis of audiometric data and produces hearing loss statistics required for reporting to OSHA |
excel, data cleaning, sql server, proc sql, data step, xls, proc freq, proc step | 6 | |
| 51 | Integration of SAS and NONMEM for Automation of Population Pharmacokinetic/Pharmacodynamic Modeling on UNIX systems | Alan Xiao, Jill Fiedler-Kelly |
In drug development and other pharmaceutical applications, SAS is a powerful tool for statistical analysis, graph creation, text file processing, and system command submission, while NONMEM is a powerful software tool for population pharmacokinetic/ pharmacodynamic (PK/PD) modeling. The integration of SAS and NONMEM is therefore a natural solution for automation or semi- automation of population PK/PD modeling. Population PK/PD modeling, especially the process of covariate evaluation (including forward selection of the most significant covariate and backward elimination of the most non-significant covariate), can be automated using SAS programs as a recycling process of running NONMEM programs, comparing results, updating programs, and re- running. For example, the results comparison step can be implemented via SAS macros that read NONMEM output files, list and sort the minimum objective function values, and aid in the identification of the next base model | population pk, pk parameter, forward selection, backward selection, macro definition, clinical trial, pd, probability of default model | 5 | |
| 52 | Internet-Enabled Information Delivery From Data Warehouses for the Telecommunications and Insurance Industries | George Bukhbinder, Michael Krumenaker |
A dat a warehouse is the foundation of an on -line analytical processing (OLAP) decision support system for database marketing in telecommunications and for developing pricing models in the insurance industry. This paper addresses several factors important to the successful completion of large-scale rapid data warehouse development in these industries. These factors include: 1. Data model design 2. Metadata maintenance and production automation using SAS Warehouse Administrator software 3. Dimensions and hierarchies requ ired for building a multidimensional database 4. Internet-enabled OLAP and other methods of information delivery from a data warehouse The presentation includes a demonstration of Internet - enabled OLAP used as an interface to a data warehouse and describes the business benefits of building a powerful decision support system using examples from the telecommunications and insurance industries | class variable, excel, incurred loss, data warehouse, insurance | 7 | |
| 53 | Introducing the SAS Business Intelligence Platform | Diane Hatcher, Rob Stephens |
The SAS Business Intelligence Platform is a suite of software services, components, and practices for building intelligent enterprise information delivery applications that exploit the analytic and presentation power of the SAS System. The design of the SAS Business Intelligence Platform is a set of Java application programming interfaces that run outside of the traditional SAS server. This Java-based foundation and infrastructure provides powerful, easy-to-use Business Intelligence (BI) applications and custom development capabilities for the Web | business intelligence, api | 2 | |
| 54 | Introduction to the SAS Macro Language | Destiny Corporation (a company) | Get hands-on experience using macro variables and macro statements such as call symput and symget, %MACRO, %MEND, and %LET. Learn to write macros to 'macro-tize' existing code, and to make your programs simpler and more efficient |
macro variable, macro facility, macro put, macro call, macro definition, &variable, proc step, proc datasets, symbol table, keyword parameter, macro parameter, %macro parameters, macro quoting function | 8 | |
| 55 | Libname: Start Your Engines | Janet E. Stuelpner | A LIBNAME associates a library reference with a SAS data library. An engine is a part of SAS software that reads from or writes to a file. New in version 7 and greater is the ability to assign a libref to a DBMS like DB2 or Oracle. This paper will show you how to do it and explore the benefits and pitfalls of its use |
relational database, libname statement, dataset, proc step, proc sql, if-then-else | 2 | |
| 56 | Longitudinal Data Techniques: Looking Across Observations | Ronald P. Cody | proc step, proc freq, lag function, by group processing, set statement, longitudinal data, retain, proc means | 6 | ||
| 57 | Macro Techniques for Repetitive SAS Processing | Timothy D. Brown | SAS programming frequently includes very repetitive sets of code in the form of a few lines of code within a DATA STEP, a single repeating DATA/PROC STEP or a repeating combination of DATA and PROC steps. This paper will present techniques for performing repetitive aspects of SAS programming using SAS macro programming techniques. The discussion will start with a review of some basics of SAS macro, including macro "arrays", and build to more complex examples. It will also cover data and logic driven techniques. These techniques dynamically generate SAS code and, in some cases, reduce the amount of code that needs to be explicitly included in a program. The paper includes samples of code that can easily be applied to a wide variety of applications |
macro variable, proc step, macro put, macro definition, macro loop, call execute, put statement, call symput, sas log, keyword parameter | 7 | |
| 58 | Macros with Global Vision: Using The SAS Dictionary Tables to Create Tools | James R. Carter, Michael E. Tomb |
The SAS Dictionary Tables are views of continually updated data describing the current SAS session. In this poster we provide examples of taking this valuable resource of metadata and putting it to work. Each of the three macros presented here automates a solution that involves multiple SAS datasets and libraries. The first illustrates how to instantly compare all like-named datasets within two libraries based on date and a set of ID variables. The second is a simple character "word" search and replace routine that crawls across datasets and libraries. The last macro system reports tabular observation counts of all levels of ID variables after sweeping through every dataset and library that is desired. It can be used, for example, to streamline the process of tracking missing CRF pages within Clinical Trial data | dataset, proc step, call execute, character variable, proc sql, %if-%then-%else, dictionary tables | 7 | |
| 59 | Mapping Our World: Using SAS/GIS to Access, Analyze and Present Spatial Data | Linh H. Le, Trang Q. Nguyen |
This paper w ill provide an overview of SAS/GIS software for importing, displaying, analyzing, editing, organizing and printing location-based data. Using a step-by-step |
view, dataset, proc sql, catalog entry | 3 | |
| 60 | Merging Multiple Observation Data Sets Together | Timothy D. Kelly | The review of clinical data can sometimes call upon a programmer to be very creative in order to conquer complex issues. These desired results can cause angst and frustration in getting the objective done. One such nuisance is to generate a comfortable output from multiple data sets, where more then one of these data sets contains multiple observations. When these data sets cannot be merged together without causing a "many to many merge", and PROC SQL code is not generating the desired result, this paper will give a simple example on how to conquer this complex issue. Clean Merge Every programmer needs to overcome the tendency to overcomplicate an issue. Sometimes we are so blinded with producing a specific result that we are unable to see the path of how to get there. There are many obstacles to overcome during the creation of a program. One such hurdle is merging data in which the uniqueness of each data set involved does not allow a "clean" merge |
proc step, proc sort, proc sql, adverse events, concomitant medications | 2 | |
| 61 | Numeric Data in SAS: Guidelines For Storage and Display | Paul Gorrell | Understanding how SAS stores and displays numeric data is essential for both accurate computations and effective, useful, reports and tables. SAS stores the values of all numeric variables in floating-point representation. This paper begins with a brief, practical, overview of floating point representation and how it relates to programming questions regarding length, precision, and efficient use of disk space. I will discuss situations where numeric length should not be reduced, even if the range of integer values would appear to permit it. For saving disk space, I'll show the advantages of the SAS V8 COMPRESS=BINARY option. How SAS stores numbers also affects the use of comparison operators, and I will discuss the use of numeric functions such as ROUND, FLOOR and CEIL to achieve program goals. The use of formats for the effective display of numeric data will also be discussed | numeric variable, decimal, length statement, proc step, numeric functions, format statement | 7 | |
| 62 | ODS (Output Delivery System) | Destiny Corporation (a company) | This paper is designed to demonstrate the different possibilities we use when we build web based applications for clients and teach them the web publishing techniques we use with SAS Software. Actual examples are available on our web site | proc step, output delivery system | 8 | |
| 63 | ODS Markup: The Power of Choice and Change | Eric A. Gebhart | When it comes to markup languages, there are lots of choices. If you are keeping up with the web, you might say XML is your choice. XML alone is full of choices. But XML is just the latest craze. There are lots of other markup languages out there. Using the ODS MARKUP output destination the ability to create these types of output are within your grasp |
proc template, proc step, output delivery system, put statement, ods html | 10 | |
| 64 | ODS to Create Tables in PDF Format from Different Output Sources | John He | In pharmaceutical industry, FDA recently issued the guidance for electronic submission. It requires the PDF to be the format for the submission of tables and documents. With SAS version 8, it is now possible for us to make PDF in many flexible ways by using ODS. ODS has the feature to create the tables in PDF format. There is an easy ODS syntax to create PDF file from PROC PRINT or PROC REPORT. However, if you want "page x of y", to-be-published titles and other features to be included in PDF file, you may need to use ODS with a DATA _NULL_ to create PDF file from a SAS output such as LIS or LST file in which the customized features had already been embedded. Furthermore, we have to overcome the difficulty of page break control since ODS PRINTER in version 8.2 has the limitation with page break problems. But, we will provide a programming solution to this problem |
sas output, proc step | 10 | |
| 65 | Off and Running with Arrays in SAS | Stephen Keelan | Often we look at our newly completed SAS program and think … there must be a better way. If your programs have many repetitious lines of code, calculating and re-calculating the same thing, or if you need to rotate or transpose data … Arrays may be for you. This tutorial will focus on introducing you to Arrays, understanding what they are and how to add them to your SAS programs. This tutorial will use Base SAS and is appropriate for beginner and intermediate SAS programmers | array, do loop, character variable, if-then-else, numeric variable, set statement, rating factor, proc step | 7 | |
| 66 | One More Time About R2 Measures of Fit in Logistic Regression | Ernest S. Shtatland, Ken Kleinman, Emily M. Cain |
In logistic regression, the demand for pseudo R2 measures of fit is undeniable. There are at least a half dozen such measures, with little consensus on which is preferable. Two of them, both based on the maximum likelihood, are used in almost all statistical software systems. The first, R2 1, has been implemented in SAS and SPSS. The second, | regression analysis, logistic distribution, logistic regression, likelihood function, proc reg, feature selection, correlation | 6 | |
| 67 | PC TVS - - Say What' | Stephen J. Rhoades | Everprocessononeplatformandsenddata toanother?Howdoyouknowallofyourdata hasactuallyarrived?Howdoyouleteveryone knowthedatahasbeensentandisreadyfor use?SAShasaway. Timetobreakdown'PCTVS';it'snot Personalcomputersandtelevisions.Itstands forPROCESS,CONNECTtoanother computer,TRANSFERdata,VERIFYthe datahasbeensentandreceived,andthen SENDe-mailstoleteveryoneknowthedatais readyforuse.Thiscanallbedone automaticallyusingSASConnect,some macrosandtheBaseSASe-mailcapabilities. IncaseyouhavebeenusingFTP,thisis better.Youknowforsurewhatwassentis whatwasreceivedandmanuallycontacting interestedpartiesiseliminated | record count, macro variable, txt, proc step, cdisc | 6 | |
| 68 | Practice of SAS Logistic Regression on Binary Pharmacodynamic Data - Problems and Solutions | Alan Xiao | Logistic regression has been widely applied to population pharmacodynamic analyses of dose-response (binary efficacy or safety endpoints). Limited by the model structure p(y) = exp(y)/(1+exp(y)), where p(y) is the response probability and y = logit(x) is a function of the explanatory variable vector x (usually drug exposure and other covariates), direct use of this procedure to some special data might yield misleading results. Although the logarithm (and other) transformations of explanatory variables can expand the use of logistic regression to those types of data, eligible explanatory variables for transformation cannot include those with zero values, such as dose or drug exposure in placebo subjects. This could make the analysis even more difficult, especially when all dosages lie near or at the plateau of the response. An alternative solution may be the use of PROC NLIN to model, as a continuous function, the outcome probabilities at each level of the explanatory variable |
logistic regression, logistic distribution, regression analysis, proc nlin, proc step, dose, estimate, predictor variable | 5 | |
| 69 | PROC REPORT: Doin' It in STYLE! | Ray Pass, Sandy McNeill |
The advent of the SAS Output Delivery System (ODS to its friends) has turned SAS reports from machine-generated, black & white monospace bores into people-produced, productive and reader-friendly information displays. One of the main principles underlying ODS is the use of Table and Style definitions (also known as Table and Style templates). Most procedures have a standard output layout structure and rely on their Table and Style definitions to govern the cosmetic or stylistic appearance of their tables. Certain procedures (REPORT, TABULATE, etc), however, by the very nature of their complete structural customizability, do not rely on fixed external table definitions. For these procedures, stylistic customizations are performed through the use of the STYLE option, an ODS concept which is integrated into the heart of the procedures' syntax. This presentation will demonstrate the use of STYLEs in the REPORT procedure |
proc report, proc step, ods html, output delivery system, if-then-else, cpu time, ods listing, user-defined format | 10 | |
| 70 | PROC SQL for DATA Step Die-Hards | Christianna S. Williams | PROC SQL can be rather intimidating for those who have learned SAS data management techniques exclusively using the DATA STEP. However, when it comes to data manipulation, SAS often provides more than one method to achieve the same result, and SQL provides another valuable tool to have in one's repertoire. Further, Structured Query Language is implemented in many widely used relational database systems with which SAS may interface, so it is a worthwhile skill to have from that perspective as well. This tutorial will present a series of increasingly complex examples. In each case I will demonstrate the DATA STEP method with which users are probably already familiar, followed by SQL code that will accomplish the same data manipulation |
proc sql, proc step, create table, order by, group by, inner join, proc sort, subsetting if, where statement, by group processing, data governance, filtering, proc means, outlier | 10 | |
| 71 | PROC SQL vs. Pass-Thru SQL on DB2 or How I found an extra day | Jeffrey Cohen | Many people use PROC SQL to query DB2 databases yet ignore the Pass-thru ability of this PROC. This paper will compare the PROC SQL of SAS and Pass-thru SQL on the same 30 million- row table to highlight the time and resource savings that Pass-through SQL can give |
proc sql, proc step, cpu time, left join, create table, inner join | 4 | |
| 72 | Producing American Community Survey Edit Analysis Reports Dynamically Using SAS/IntrNet | Arumugam Sutha | Each year the Data Processing Team (DP Team) of the American Community Survey (ACS) at the U. S. Census Bureau produces several reports to support subject-matter analysts in their review of the edited survey data. Since these reports are several hundred pages long and a particular analyst has interest in only a few pages, there have been complaints from the analysts on printing and viewing the reports. SAS/INTRNET software offers a solution to this problem. It allows the users to select certain parameters from a browser at their desktop and submit a job to produce a nicely formatted HTML report without having SAS software on their machine. This paper will discuss how SAS/INTRNET is used to accomplish this task and will describe the necessary SAS code. It will also show how the report can be downloaded to a spreadsheet by the click of a button |
macro variable, output delivery system, proc step, proc print, macro definition | 11 | |
| 73 | Programming Standards, Style Sheets, and Peer Reviews: A Practical Guide | Dianne Louise Rhodes | When a new job starts, or a new manager takes over a project, the programming team is faced with a new culture. Often, this m eans that they are asked to adhere to yet another set of programming standards, use style sheets, and are subject to peer reviews. This process is usually short lived, because of the lack of a practical approach to applying standards and enforcement. This paper goes through a step by step process of developing programming standards, classifying them and entering them into a database. This database can then be used to develop style sheets and check lists for peer review and testing. Through peer reviews and in preparation for them, programmers learn good programming practices | proc step, data transformation | 5 | |
| 74 | Providing Scheduled-release Web Reports That Look Good, And Almost Maintain Themselves Using SAS ODS | Ashley Sanders | Even a novice SAS programmer with a little knowledge of HTML can create great Internet reports using ODS. With a few additional procedures, including some simple macro steps and a data _NULL_ or two, it is possible to produce highly customized output that practically manages itself. Programs can be built off the old tractor- feed printer report programs already in the company library, or built using PROC REPORT and other base SAS or GRAPH procedures. Quarterly dairy reports, available to the public via the Internet will be used to demonstrate tools that: create Internet reports from existing data; create report updates and archive previous versions with the same SAS program; create downloadable |
proc step, proc report, ods html, proc print, macro variable, proc template, excel, data step, %if-%then-%else, macro definition | 7 | |
| 75 | Psychometrics 101 | Ronald P. Cody | correlation, proc step, proc corr, proc rank, proc freq, point-biserial correlation, pearson correlation, proc print, histogram, macro variable | 9 | ||
| 76 | Quality Control As Data Analysis | Paul Gorrell | Good quality control programs are the opposite of good marketing, i.e. you want the smallest flaw, even if it's on a single record, to announce its presence loud and clear. We will take advantage of the fact that SAS offers a wide variety of tools for data analysis and we will look at quality control [QC] as one particular form of data analysis. From this perspective, effective QC becomes a question of applying data-analysis techniques through the use of SAS PROCs, formats, and LOG messages. For example, valid data analysis would never be based on the first 50 observations of a 100,000 record file. Yet many SAS programmers print 50 observations to 'check' on variable values, or the results of a merge. Although there may be times this is necessary (or, at least, comforting), it is rarely (if ever) sufficient. QC, like data analysis, should be based on logic and pattern verification, as well as on properties of the entire output data set (or an identified sub-group) | proc step, data science, quality control, sas programmer, proc compare, proc contents, proc freq, length statement, error message, sas programming | 7 | |
| 77 | Real Neural Networking: Using SAS To Build And Deliver Behavior-Genetic-Nervous Spatial And Functional Maps Of Biological Systems | Haftan M. Eckholdt | This talk describes the status of a long term project to build a digital model of genes, behavior, and neuroanatomy in a biological system. Caenorhabditis elegans was the first species to be mapped genetically, and the first species to be mapped neurologically, and the first species to provide evidence of specific gene-behavior relationships. SAS [DATA STEP, PROC GPLOT, %MACRO] is being used in the first phase to build a spatially and functionally accurate digital model of the nervous system including information about location and branching, 3D maps of neurons, 3D animations of neurons, and 3D VRML outputs. SAS has been used to build a database of the entire genetic structure [Computer Cluster management and computation: SUGI2001]. Once the behavioral database has been developed, SAS can be used to serve WEB enabled modeling systems accessible through neurons, genes, or behavior |
parallel processing, neural network | 5 | |
| 78 | Regular Expressions in SAS Version 8 and Beyond | Francis Harvey III | Many of the problems encountered when working with data in SAS can be broken down into two simple groups of problems: matching specific patterns in a string and then changing the string based upon those matches. This presentation illustrates how regular expressions can be used for these purposes by examining some typical validation problems as well as some sample text searches and replacements. We begin by looking at how the SAS regular expression (rx) functions can be used to solve these problems. For an interesting contrast, we then solve these same problems within SAS using methods from publicly available regular expression libraries. The | data cleaning, sample | 9 | |
| 79 | Running SAS Applications on the Web | Destiny Corporation (a company) | This paper will focus on the steps r equired to create Web-enabled applications that users can execute in an intranet/internet environment with SAS software | proc step, advanced sas | 10 | |
| 80 | SAS and the Security of Confidential Data | Lori Maiwald | The extensive connectivity that SAS offers unfortunately allows for many opportunities to compromise the security of confidential data by SAS programmers and SAS users. Security lapses include the simple case of userid and password inclusion in a SAS program to the intricacies of permanent libraries of PROC ACCESS view descriptors. A macro involving %WINDOW can simultaneously challenge users for userids and passwords, retain the same for multiple database access, be protected from sight and be used for access without the DBPROMPT option. Another macro involving PROC ACCESS and utilizing values retained by the abovementioned %WINDOW macro can be used to provide challenged database access while allowing subsets to be passed to the DBMS |
proc step, where statement, permanent library, macro variable, proc sql | 2 | |
| 81 | SAS Macro Design Issues | H. Ian Whitlock | Two questions motivated this paper. The first came more than twenty years ago at the end of my first programming course when the professor asked, "You now know how to write programs, but do you know when it is appropriate to write a program?" For SAS macro the question might be rephrased. What kind of SAS problem is appropriate to macro? Or when should the solution involve macro code? The second came from SAS-L in September 2001, "What sources discuss how to develop clear and good macro code?" There have been many Beginning Tutorials on macro, and many of the examples in them may illustrate some of the principles that these questions hint at, but I do not know of any source that concentrates on the principles | macro facility, macro variable, proc print, proc step | 10 | |
| 82 | SAS Macros - A Practical Hands-on Approach | Michael G. Sadof | The macro facility is an important feature of the SAS Language. Mastering this facility will enable the novice user to become an accomplished programmer. This paper uses a practical building block approach taking the user from the most basic %LET statements to parameter driven, code generating macros that can save time and effort. While sometimes considered daunting to the beginner the correct us e of Macros can reduce the repetitiveness of manipulating data and can facilitate uniform and easy maintenance of the system. This paper will use step by step examples to show the user how to use macro substitution to provide simple yet powerful SAS code. At first programs with macros may seem complicated and harder to maintain but with some simple documentation you can build easy to maintain programs that have reusable code. It is always nice not to have to reinvent the wheel with each program |
macro variable, macro facility, macro definition | 9 | |
| 83 | SAS Meets Big Iron: High Performance Computing in SAS Analytical Procedures | Robert A. Cohen | Version 9 targets the heavy-duty analytic procedures in SAS for high performance computing enhance- ments. These enhancements encompass both al- gorithmic improvements and modifications to exploit multiprocessor hardware. This paper provides a sur- vey of this development and the performance gains obtained in several procedures in SAS/STAT and Enterprise Miner . Some general scalability issues are discussed and their practical implications in pro- viding high performance scalable implementations in the following SAS facilities are addressed: linear regression analysis of variance local regression robust regression * logistic regression |
9 | ||
| 84 | SAS Output to Excel: DDE and Beyond | Lawrence Helbers, Alexander Vinokurov |
Some clients require SAS data to be displayed in formatted MS EXCEL spreadsheets. This paper describes the development of a SAS macro that supports a variety of table layouts and avoids many manual-formatting steps in EXCEL. Output features covered include: font control, column width, data formats, alignment, page setup, spanned headers, borders and file operations. This SAS macro has been developed to write and format the spreadsheet in a single call that can be included in your data preparation programs. The macro was developed using DDE techniques in SAS v6.12 and SAS v8.2 on the MS Windows platform. With a forthcoming platform change to UNIX and Enterprise Guide software and the new features afforded by ODS in SAS v8, the paper also discusses adapting to change |
excel, macro call, data step, sample, macro definition | 5 | |
| 85 | SAS Statements Used Anywhere | Karin LaPann | Whenever programmers are introduced to SAS, they are taught that there are two kinds of statements; the PROC STEP and the DATA STEP. However, there is a third group of statements, which are not procedures, but are essential in the operation of any SAS code. These are global statements, or as I call them, statements used anywhere. Global statements perform the following functions: Data access Log control Output control Program control * Environment control Understanding and using these global statements correctly greatly enhances control over the programming session, and also of the various SAS outputs. In this paper I will describe these global statements and provide examples of their use |
libname statement, filename statement, proc step, excel | 10 | |
| 86 | SAS Stew Keeps Facilities Running | Michael A. Mace | At first glance, this application looks like five SAS/FSEDIT screens and several canned reports. However, when we look at the recipe, we find oodles of nifty things working together --- from SAS/ACCESS for DB2 . SCL assisting in data entry, window- jumping, and data summing to reporting and data maintenance. So many good things, we have to come back for seconds. Please note that while this application was written using version 6.09 on MVS, the tools and techniques are just as applicable on other platforms and with later versions of the SAS system |
create table, proc step, proc sql | 10 | |
| 87 | SAS Techniques for Incorporating Medical Code Updates into Longitudinal Health Care Data | Perry Watts, Alan C. Wilson |
Processing longitudinal health care data presents a unique set of challenges to the SAS programmer. Typically, very large transaction data sets are involved with each record containing multiple medical codes describing a patient's hospitalization. The code definitions are updated annually, and those updates must al so be tracked so that longitud i- nal study results are acc urately reported. Because update patterns have not been fully identified, they have to be inferred from both the structure of the codes and an ass o- ciated conversion table. Once identified, techniques then have to be developed for handling the updates. Two such techniques are described in the paper. Format concatena- tion is used to retrieve time -dependent ICD-9 Diagnostic (DX) code descriptions, and code mapping with the POINT option in a DATA STEP returns comparable codes needed for tallying cross-year frequencies |
proc sql, proc freq, proc step, txt, set statement, sample, longitudinal data, putc, transaction data | 10 | |
| 88 | SAS User Documentation: Web Page Design Made Easy | Bruce F. Gilsen, Scott Hoenig |
character functions, sample | 10 | ||
| 89 | SAS/STAT Version 9: Moving in New Directions and Building on Old Favorites | Bob Rodriguez | Version 9 of SAS/STAT software brings you a vari- ety of new tools for your statistical computing needs. The Power and Sample Size Application (PSS) pro- vides sample size and power computations for a vari- ety of analyses through a web interface. Experimen- tal software in Version 9 moves SAS/STAT in new di- rections, including robust regression, which is sup- ported by the ROBUSTREG procedure, and logis- tic regression for sample survey data, available with the SURVEYLOGISTIC procedure. In response to user requests, a number of procedures have been en- hanced significantly. Conditional logistic regression is available in the LOGISTIC procedure through the new STRATA statement, and scoring of data sets is avail- able through the new SCORE statement. New fea- tures in several other procedures are also discussed |
6 | ||
| 90 | Some Analysis Methods for Behavioral Toxicology Data | Richard R. Allen | Five groups of monkeys were tested on a battery of four behavioral tasks to determine if being exposed to a particular drug had any effect on their learning capabilities. They were tested on two pairs of tasks every other weekday for a period of a year and a half. This talk will concentrate on the longitudinal analysis of the accuracy of response for the Conditioned Position Responding Task (CPR), a color and position discrimination task. The data and results of different but similar analyses of the data are discussed. Some of the | proc step, proc mixed, proc genmod, output delivery system | 8 | |
| 91 | SQL Basics | Destiny Corporation (a company) | This paper w ill show the r eader how to write PROC SQL code for extraction and summarization of data. We will start with simple selects, advance thr ough keywords such as count and distinct, and finish with complex joins. When done, you w ill have gai ned an appreciation for the elegance of the SQL query tool and you w ill no l onger be intimidated by Oracle or DB2 programmers |
proc sql, proc step, order by, select, proc print, where statement, proc sort | 6 | |
| 92 | Stupid Data Tricks - Techniques for Getting Your Output to Behave | John J. Cohen | Much like our pets, our data often have their own agenda. Values that perform flawlessly during data manipulation may turn on us unexpectedly when we go to output final product. And those codes, which can make storage and retrieval easier and more efficient, may be incomprehensible to our end users. We will present here a collection of techniques including formats, functions, the SAS macro language, and programs-which-write- programs to help you to train your data to sit, roll over, and even play dead. In Buffalo, as space permits, we may also explore certain other techniques such as ODS and SAS/GRAPH |
proc step, proc format, proc freq, frequency analysis | 7 | |
| 93 | Subsetting SAS Data Set by Using PROC SQL Self-join with Compound Key | Zizhong (James) Fan | PROC SQL is a powerful procedure that has many advantages over the DATA STEP. It can be used for data retrieval, manipulation and report writing. One of the advantages of using PROC SQL for data manipulation is how the data sets are merged together (joining tables). Most of the literature has been focusing on how to join multiple data sets. This paper will focus on one of the other important functions of PROC SQL: the Self-join. The PROC SQL self-join is more efficient than DATA STEP processing in the area of subsetting data set when the subsetting needs to be based on the relationship between variables in different observations within the same data set. By utilizing multiple common columns (compound key) within the same data set, the self-join technique efficiently simplifies programming. This paper will show the strategy and programming of the PROC SQL self-join. Examples will be shown to compare SQL procedure with the DATA STEP |
proc sql, proc step, proc print, proc sort, data merging | 2 | |
| 94 | Systems Options are Your Friends | Edward Heaton | Do SAS Systems Options intimidate you? There are a lot of them and their descriptions can sometimes be a little confusing. There are, however, a few that are quite simple to use and very helpful. In this paper Ed will investigate some Systems Options that will: /G83 Make your data more accessible; /G83 Protect you from making some simple mistakes; /G83 Aid in debugging your programs; and /G83 Make your work a little easier. Ed will present simple examples that demonstrate the use and usefulness of the Systems Options that are presented. The focus will be towards the MS Windows environment, but many of the options discussed will span platforms | options statement, sas log, user-defined format | 5 | |
| 95 | Taking Big Bytes out of a Long Long Query | Adel Fahmy | In Clinical Trials, a data validation issue (produced by Edit Checks) is called a Query, and the response (by investigator) is called a Resolution. Although queries are supposed to be precise and brief, they tend to be narrative. Extracting queries, from databases, occurs in multiple fields, and the text is cut off in the middle of words. Since we are limited by the page width, printing a report from a 600-character query turns into a real problem. Many reports use the SUBSTR function to cut the string into pieces, which is a poor technique. Advanced programmers use a Macro to wrap the text on multiple lines, but they usually handle ONE field at a time. In addition, the long text field is displayed as multiple lines for Data Entry. A Line Feed within that field becomes a nightmare in any report. The generic technique, we are presenting, takes care of the continuation of the multiple pieces of text fields that make up the full query/resolution text | proc step, proc report, in=, macro loop | 4 | |
| 96 | Techniques for SAS Enabling Microsoft Office in a Cross-Platform Environment | Vincent DelGobbo | With the ubiquity of the Microsoft Office suite of products, you often need to use SAS data and analytical results in the Office products EXCEL or Word. But transferring data from SAS to the Office applications can be difficult when the SAS System is installed on a non-Windows platform, such as OpenVMS, UNIX or OS/3790. This paper provides techniques for integrating the analytic processing power of the SAS system, irrespective of platform, with Microsoft EXCEL and Word. The use of the Output Delivery System (ODS) is also discussed |
excel, sample, ods html, ods rtf, output delivery system, proc step, ods csv | 8 | |
| 97 | Temporal Optimization: Convergence of Time Series and Linear Modeling for Selecting Portfolio Strategies | Haftan M. Eckholdt | Selecting trade strategies out of sample is hindered by the lack of information. Using Time Series approaches to forecasting asset value does not usually produce usabl e information with regard to volatility. Using Linear Regression approaches in predicting strategy performance does not usually produce attractive fit between predicated and observed data. We w ill discuss methods for using the SAS FORECAST and GLM procedures to predict and select various strategies for equity investment that were back tested for simulations. This me thod is an approach to predicting, understanding, and selecting portfolio investment and management strategies that can be used to reduce costs and minimize volatility. Various strategies for investing in members of the S&P500 Index w ere back tested and reviewed for desirable returns. Using a variety of approaches can give analy sts a broader perspective on their investment strategy | time series analysis, proc glm, proc forecast, sample, proc genmod, proc step | 3 | |
| 98 | Testing 1,2,3: Determining Redundant Procedures in Product Testing | Eric Rosenberg | Consumers Union, publisher of Consumer Reports magazine, is arguably the largest tester of consumer products on the planet. The range of products we test is prodigious, ranging from cars to wine, power tools to pregnancy tests. Every product we report on goes through a variety of testing procedures (strength, power, time to failure, taste, etc.) We are faced with the challenge of adequately testing both an expanding universe of product types as well as a growing number of products within most such categories. Identifying and removing test procedures that add little or no new information to our determinations is essential. 1. Pine boards (standardized for density) were cross cut repeatedly by an experienced technician 2. Pine boards (standardized for density) were rip cut repeatedly by an experienced technician 3 | correlation, outlier | 12 | |
| 99 | The DATA Step in Version 9: What's New? | Jason Secosky | hash table, by group processing, character functions, macro variable, data cleaning | 6 | ||
| 100 | The Essential Meaning of PROC MEANS: A Beginner's Guide to Summarizing Data Using SAS Software | Gary M. McQuown, Andrew H. Karp |
proc step, dataset, proc means, numeric variable, output, character variable, sas output, sas base, missing value, proc freq, where statement | 10 | ||
| 101 | The Sparse Option in PROC FREQ: Little Known, Yet Powerful | Chris Moriak | Have you ever needed to know all the possible combinations among specific variables within a data set? If you have ever needed to zero -fill a table, then the answer is yes. If you have, then you probably used PROC SQL or some kind of DATA STEP. Did you know PROC FREQ can provide you with all possible combinations among specific variables within a data set in one simple table statement? The little known SPARSE option in PROC FREQ accomplishes this feat quickly and neatly. The SPARSE Option The SPARSE option in PROC FREQ is not properly named. It is neither meager nor thin in its ability. It is a very powerful option in the table statemen t. Simply stated, the SPARSE option provides "all possible combinations of levels of the variables in the table, even when some combination levels do not occur in the data." 1 This is a huge help when trying to zero -fill a data set |
proc freq, proc step | 2 | |
| 102 | The Wealth of JMP Final Reports | Charles E. Shipp, Kirk Paul Lafler |
Once you have discovered the nature of your dataand its relationships using JMP, it is important tocommunicate with statistical graphics and tables to (1)your co-workers and management; (2) businesspartners; (3) review agencies; and/or (4) customers. By looking at the complete range of JMP reports andexplaining their richness, we show an overview ofJMP. We also show how to produce these reportsand how to store a library of scripts to generate themand their journal files which can go into MS Word andPowerPoint final reports. | correlation, cluster analysis | 5 | |
| 103 | Tips for Manipulating Data | Marge Scerbo | As a beginning SAS programmer, you could be easily overwhelmed with the sheer size of the language. It is not easy to learn the best way to complete a task, if a best way actually exists. Does one method actually work better than another does? For example: When working with a large number of variables, does it really make a difference to DROP or KEEP variables? If so, is one better than the other? What is a DATA STEP statement? And what is a data set option? Are they the same? * What is the best way to subset the data, IF or |
proc step, if-then-else, proc append, drop statement, keep statement, where statement | 10 | |
| 104 | Tips for Reading and Writing Delimited Files | Michael G. Sadof | While SAS software gives us several options to seamlessly convert EXCEL spreadsheets directly into SAS data files our users sometimes request an intermediate comma delimited file for loading into a database. This occurs in part to conserve disk space while transferring between platforms. This paper will explore several methods to read or import comma delimited files and even have SAS generate the code for you. It will also remind you of the $QUOTE format which can assist in writing out delimited files |
delimited file, excel, proc step | 2 | |
| 105 | To Err Is Human; to Debug, Divine | Roger Staum | This tutorial describes four types of programming errors and how you can recognize them. It also discusses four approaches to handling errors: deter, detect, deflect, and debug | missing value, proc step, error message, proc print, put statement, macro variable, input statement, numeric variable, proc sql, options statement, merge statement, by group processing, character variable, error, sas log, macro facility | 11 | |
| 106 | Two Useful Macros to Nudge SAS to Serve You | David Izrael, Michael P. Battaglia |
This paper offers two macros that augment the power of two SAS procedures: LOGIST IC and UNIVARIATE. PROC LOGISTIC calculates, among other statistics, several measures that reflect the predictive ability of a logistic regression model. Those are: percent concordant; discordant; and tied pairs, as well as four rank correlation indexes: Somers' D; Gamma; Tau-a; and c. The procedure displays them in the Associ ation of Predicted Probabilities and Observed Responses table. In the presence of survey weights, however, the procedure computes those measures ignoring the weights. This makes it difficult for survey researchers to use PROC LOGISTIC for assessment of the predictive ability of a model, because survey weights are commonly used to analyze survey data. The first macro we offer takes the survey weights into account when computing the mentioned Association Parameters and compares the unweighted measures with the ones calculated by the macro |
proc step, logistic distribution, proc logistic, survey weight, output delivery system, proc univariate, ods listing, macro definition, proc means, logistic regression, macro loop, correlation, sample, response variable, macro variable | 6 | |
| 107 | Understanding SAS/Warehouse Administrator | Michael L. Davis | Some firms have looked at SAS/WAREHOUSE Administrator and decided to continue developing applications in the traditional way. Why? Reasons include high investment cost, difficulty of incorporating legacy code, and the awkwardness of using terminal emulators when running SAS/WAREHOUSE Administrator on a server located in a "glass room" or other remote location. However, if one can overcome these objections and let SAS/WAREHOUSE Administrator write the required |
data warehouse, data mart, proc sql | 10 | |
| 108 | Use Your Website to Document Your Website | Karen L. Wyland | You've developed and put into production a great website using the SAS/INTRNET technologies. You may now be considering tackling the job of documenting your website applications and processes. Have you considered using the very same tools you're using to produce your website to create a website for your development/maintenance personnel? Decision Support Systems (DSS) at Sodexho makes extensive use of the SAS/INTRNET technologies to keep their development team informed. Several reasons led us to create a developer's website. We're a small team and work on individual tasks. We need to keep current on the status of our projects or "done-bys". We also need to document the procedural tasks we each perform so we have a "turn-over" document ready at all times. It's not always possible for our team to connect to the remote server since we require secure shell access. A website using only a browser interface is perfect for our "anytime, anywhere" needs |
batch job, sample, sas batch, data step, proc sql | 6 | |
| 109 | User-Interface Tool Choice and Audit Trail Tool Choice for a SAS Based Data Entry/Verify System for Clinical Trials Data | Barry R. Cohen | A double-key data entry/verify system for pharmaceutical clinical trials data was previously developed using SAS/AF and SAS Component Language (SCL) software. The application has operated successfully for several years. Now, new federal regulations require that an audit trail be maintained on the creation and modification of all electronic records involved in clinical trials research. Thus, an audit trail was added to the existing system. Two different aspects of this application development project are discussed. (1) Issues that surround the choice of a development tool for the graphical user interface of a client-server application in a SAS-based environment, where SAS programs and data are processed on the server side. Three tool choices (SAS/AF, AppDev Studio, and Visual Basic) are evaluated across several performance factors. (2) The new, native data set audit trail facility available in the SAS System, and why it was not the best approach for our project |
sas base, audit trail, dataset, clinical trial, logistic distribution, clinical data | 6 | |
| 110 | Using _INFILE_, Substr, Translate, and TranWrd to Manipulate Strings of Text Within the Input Buffer | Peter Wobus | Version 8 of SAS offers many useful enhancements, among them the automatic _INFILE_ variable. As SAS points out in its documentation, the _INFILE_ variable can be used to reference the contents of the current input buffer for the most recent execution of the INFILE statement. This paper shows how to manipulate strings of text within the input buffer using the _INFILE_ variable and output a reformatted ASCII file. Keywords _INFILE_ , translate, SubStr, TranWrd An Overview The _INFILE_ variable is like any other character variable in SAS. Its default length is 32,767, the maximum for a character variables allowed by SAS. Also like other SAS variables, _INFILE_ can be used in an assignment statement or in a PUT statement modified by a format. The program illustrated here will make liberal use of the following SAS functions: SubStr, Translate, and TranWrd | missing value, tranwrd function | 3 | |
| 111 | Using IOM and Visual Basic in SAS Program Development | Greg Silva | When SAS Institute added the Integrated Object Model (IOM) to the SAS System's BASE product in version 8, they opened the door to SAS applications development using Visual Basic (VB). Data set manipulation, SAS code execution, and data binding are now part of the tool set available to the SAS/VB programmer. This paper will describe some of the features of SAS that are available through the use of IOM, and show some code that uses IOM with VB |
macro variable, proc print | 4 | |
| 112 | Using ODS and the Macro Facility to Construct Color Charts and Scales for SAS Software Applications | Perry Watts | proc report, macro definition, macro variable, proc step | 6 | ||
| 113 | Using SAS Data to Drive Microsoft Office | David Shamlin | Microsoft Office provides tools for integrating its suite of programs with other vendors' data sources. There are a variety of ways to do this using various ActiveX components and VBA scripting techniques. While the number of choices available can add to the complexity of creating a customized solution, the basics of integrating with SAS data sources can be simplified with some basic code patterns for migrating data and reports between Microsoft Office and SAS. We will outline basic patterns for importing SAS data into Microsoft Office documents as well as exporting data back to SAS. The paper gives implementations of these patterns in the form of Visual Basic code that can be customized for site-specific usage scenarios. We will demonstrate the application of these techniques to tasks involving the migration of data between SAS data sets and Microsoft Office and Outlook applications | advanced sas, structured data | 8 | |
| 114 | Using SAS Indexes with Large Databases | Alexander Vinokurov, Larry Helbers |
This paper presents a primer on using SAS indexes to directly access large databases in a variety of sort orders. It discusses applicable uses of an index, creation of indexes and the SAS code needed to utilize indexes in selecting data subsets, merging, and SAS procedures. The techniques discussed produced sub stantial performance improvements in prescription database analyses with over 68 million observations | proc step, index, clinical research, master data management, by group processing, proc datasets, proc sql, where statement | 4 | |
| 115 | Using SAS ODBC with Java | Lei Zhang, Tianshu Li |
SAS ODBC provides a low cost and convenient way for external applications to directly access SAS metadata and data. This paper discusses how to use Java JDBC to access SAS libraries through SAS ODBC driver. It first describes basic JDBC programming concepts, and then presents two examples to illustrate how to connect with SAS ODBC driver, view and update SAS datasets by submitting SAS-supported SQL queries and commands through the connection. This paper also explores the strengths and limitations of using SAS ODBC with Java | proc sql, sas library, dataset, if-then-else, libname statement, sas base | 6 | |
| 116 | Using SAS Strategically: A Case Study | Timothy D. Brown | Quaker Chemical Corporation is a leader in the application of SAS products to meet global, strategic business goals. This paper will discuss at a high level how Quaker applies a wide-range of SAS software including Strategic Performance Management, Total Financial Management, Human Capital Management, AppDev Studio, and Warehouse Manager. The timeframe for this review will include past and current efforts, as well Quaker's plans for the future | business intelligence, sas base, data mart, data warehouse, ledger, excel | 6 | |
| 117 | Using the LOGISTIC Procedure to Model Responses to Financial Services Direct Marketing | David Marsh | It is more im portant than ever to acc urately select receptive c onsumers for direct solicitation. Incre asingly saturated m arkets, th e growing co sts of direct m ail and telemarketing, decreasi ng c onsumer resp onsiveness a nd increasing dissatisfaction wi th di rect m arketing m ethods combine to require a more finely tuned approach. With a dat abase of c ustomer i nformation an d t he LOGISTIC procedure, a predictive m odel ca n be produced and put into operation very quickly. This paper will address aspects building a marketing response model using th e SAS system in a fin ancial serv ices setting. Topics t o be discussed i nclude e xperiment desi gn, dat a screening, pre liminary data analysis and characteristic selection, m odel selectio n, as well as v alidation and tracking issues |
sample, logistic distribution, proc step, experimentation, credit risk, proc logistic, interquartile range, null hypothesis, insurance risk score, sample size, likelihood function, proc freq, standard deviation, data cleaning | 6 | |
| 118 | Using Trapezoidal Rule for the Area under a Curve Calculation | Shi-Tao Yeh | The trapezoidal rule is a numerical integration method to be used to approximate the integral or the area under a curve. The integration of [a, b] from a functional form is divided into n equal pieces, called a trapezoid. Each subinterval is approximated by the integrand of a constant value. This paper provides three SAS macros to perform the area under a curve (AUC) calculation by t he trapezoidal rule. The first macro allows you to select the number of subintervals from a continuous smooth curve and then performs the area under the curve calculation. The second macro allows you to select the accuracy level of the approximation and then performs the necessary iterations to achieve the required accuracy level of approximation. The third macro is for discrete points of (x, y) and performs the area calculation. The SAS products used in this paper are SAS BASE , and SAS/STAT, with no limitation of operating systems |
macro definition, auc, proc step, regression analysis, proc nlin, %if-%then-%else | 5 | |
| 119 | Version 9 Changes & Enhancements | Destiny Corporation (a company) | This workshop provides am early peek at the new release of SAS , Version 9 software. During this workshop you will be introduced to many new and improved ODS features |
proc step, options statement, proc sort, sas management console, sas log, excel, sas library, macro variable, mp connect, sysdate9, proc export, index, proc format, proc sql, proc means, put statement | 18 | |
| 120 | Visual Optimization: Using SAS And Java To Explore High Density Data In Equity Portfolios | Haftan M. Eckholdt, Ezra Benun |
Computational constraints prevent analysts from exploring and understanding alternative approa ches to equity trading. We will discuss methods for using SAS visual tools to assess various strategies to equity investment that were back tested simulations. Visualization tools in SAS and JAVA were used to identify desirable surfaces on multidimensional objects that were more deeply scrutinized in lower dimensional objects to understand their behavior. This method is an approach to diagnosis and prognosis of portfolio investment and management strategies that could then be used to reduce costs, minimize volatility, etc. For this discussion, various strategies to investing in members of the S&P500 Index were back tested and reviewed for desirable returns. Characterizing thousands of portfolio strategies in sets of multidimensional objects can give analysts a broader perspective on their investment strategies | type ii error, type i error, data science, correlation | 5 | |
| 121 | Web-Ready Reports of Student Ratings | Suzanne Cross | Student ratings of team projects are becoming an integral part of course assessment. SAS/GE2 can be used to import data from a variety of sources, create a nice report and save the instructor a lot of time. The students' ratings can be recorded on machine- readable forms or a handheld device and exported to SAS on a personal computer. The TABULATE procedure and the Output Delivery System are used to create a report ready to display on the course website |
output delivery system, proc tabulate | 2 | |
| 122 | What the #@'! is this SAS Date or Time' Creating a SAS Date/Time Calculator using PROC FSEDIT | William C. Csont | H a v ey o ue v e rb e e nw o r k i n gw i t haS A Sd a t as e tw i t h unformatted date or time variables and just wanted to quickly select all records with a specific date, but the date or time variables were in cryptic SAS date or time values like 9888? This problem happened to me with some regularity, so it seemed like the development of a method to quickly decrypt individual SAS date/time values to a normal MM/DD/YYYY value would resolve this issue. After researching various techniques of utilizing the SAS system, it became apparent that the development of a simple SAS FSEDIT routine linked to a button on the SAS toolbar could resolve the problem of cryptic SAS dates and times. Furthermore, the construction of the date/time calculator would serve as a self-tutorial on SAS/FSP programming. The following is a step-by-step description of the process undertaken by a beginner SAS/FSP programmer to resolve the date/time issue |
sysdate9, proc step | 3 | |
| 123 | What's In A Map? A Macro-Driven Drill-Down Geo-Graphical Representation System | Louise S. Hadden | This paper presents a macro -driven system to create drill -down maps and present them on intranets or the internet, using BASE SAS and SAS/GRAPH . This system can be used with SAS V8 (or SAS V612 in conjunction with the %ds2htm macro supplied by the SAS Institute for HTML only) in any operating environment, including Red Hat Linux, Windows and AIX/UNIX. Although the primary focus of the paper is on interactive HTML map output, some different graphic outputs (for PC SAS only) will be briefly demonstrated. Presentation graphics contained in HTML, XML and PDF files are static and require only an internet browser and/or Adobe Acrobat to view. They are quickly and easily updatable on the host system even if the server does not have SAS installed. Other presentation options SAS provides such as JAVA and Active- X are interactive, but require specific versions of SAS to be installed on the host system to allow interactivity |
proc step, proc contents, output delivery system, red hat | 8 | |
| 124 | What's New in the Output Delivery System | Sandy McNeill | Along with every new version of SAS, the ODS developers work hard to bring you new features. So what's new with Version 9? A new destination called MARKUP along with something called markup definitions (aka TAGSETS) will become production. This new destination allows configurability of your markup output. Another new destination (also available as a PROC) that will be production for Version 9 is the DOCUMENT. If you've ever wanted to the ability to run your procedures once and then go back and pick and choose which pieces you want or how you would like them rendered, then this is for you. In addition to these new destinations, RTF has some new features and functionality -- options for Page X of Y, decimal alignment, and cell indention are a few of the highlighted features |
proc step, output delivery system, ods rtf, proc template, proc print, footnote statement, proc report, excel | 10 | |
| 125 | Where to Put "WHERE" | Hongwei Zhang | The use of WHERE statement in a DATA STEP has more limitations and sometimes WHERE= has to be used instead as a data set option. The different applications of WHERE as a statement and an option are illustrated in how to overcome the di fficulties encountered in the use of IF with some SAS temporary automatic variables, such as FIRST.variable, or data set option IN= |
where statement, automatic variable, if-then-else | 2 | |
| 126 | Working with RGB and HLS Color Coding Systems in SAS Software | Perry Watts | Full-color displays have become commonplace with the advent of the Web. Typically they are rendered from desktop computers eq uipped with 16 -bit color palettes capable of generating 56K unique colors. Thus a chart or scale is needed for making informed color selections for graphics applications. In SAS, the programmer has a c- cess to both the RGB(red/green/blue) and HLS(hue/light/saturation) coding systems. However, di f- ferent algorithms are r equired for building charts and scales in the two systems. Before the technical aspects of chart and scale constru c- tion are presented in the paper, color spaces are defined to show how the full gamut of codes is mapped in both coding systems. For RGB, codes map to a cube, and a double-ended cone accommodates the Tektronix HLS system. With the color spaces as a foundation, instru c- tions are then provided for building color charts with ODS and scales from PROC GPLOT |
proc step, proc report, macro function, macro variable, macro definition | 10 | |
| 127 | XML for Electronic Submission: A Possible Better Alternative to SAS Transport Files | Tianshu Li, Lei Zhang |
The eXtensible Markup Language (XML) is the next generation of ASCII text file. It was developed to describe, transfer, deliver and share data across different platforms and applications. Its hierarchical data structure allows XML to establish relationships among elements and other inside/outside sources. As the use of XML gains momentum, it may be accepted by the FDA as a data format for electronic submissions. The SAS transport file has worked as a FDA archival standard for several years but it has its drawbacks. For example, SAS transport files are stand-alone data sets and no explicit relationship can be associated among data sets. Another drawback is that only a limited number of other technologies can process data to or from SAS data sets or SAS transport files. An experimental XML engine was therefore created in SAS 8.0 to import and export XML data files | txt, ascii | 4 | |
| 128 | You've Got Data! Data Receipt and Reporting Using SAS | Philip Vecchione | In a fast-paced, pharmaceutical data analysis environment, the transfer of data needs to be quick and accurate. A number of steps are involved in coordinating data transfers. Data must be received, processed, and verified; proof of receipt needs to be communicated to the sender; and the internal team needs to be updated about the newly arrived datasets. These steps can be time consuming, prolonging the time to analyze and submit data to the FDA | proc step, proc contents, dataset, data science, proc report, macro call, ods html, proc print, proc sql, study day, variable list, control total | 8 |
This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.
The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.
SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS