HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

NESUG 2001 Papers - Index

147 papers. Source: NESUG (Northeast SAS Users Group) conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 %ABC_FREQ: A SAS Macro Utility to Generate Enhanced Frequency Reports Sharon Matsumoto Hirabayashi One-way frequency tables are routinely run for data checking purposes. When all variables in a file need to be examined, the volume of output can prove to be daunting. This macro utility is designed to assist the end user by supplementing the standard SAS PROC FREQ output. For faster lookup, output tables are ordered alphabetically. Variables can be dropped or kept from the full set using any valid SAS list syntax (without embedded blanks). Tables exceeding a user-specified number of levels can be suppressed and replaced with missing/non-missing counts. Formatted values or ranges (when applicable) are displayed with unformatted values, and counts for all formatted values are presented (when applicable), whether zero or not proc freq, proc step, numeric variable, proc sql, macro variable, dataset, macro function 10
2 _hitlist Macro - A Tool to Obtain Consistent Results in an Integrated Database Diane E. Foose When using an integrat ed database to support a submission to the FDA, it is critical for all programs to consistently identify and utilize the same data for analysis of the same patient subgroups . Often many programmers are assigned to perform the programming tasks of this massive effort. The utiliz ation of the variety of programming styles and techniques available within SAS may introduce variations in the patient populations identified, thereby creating the possibility of erroneous master data management, %if-%then-%else, macro definition 4
3 A Beginner's Tour of a Project using SAS Macros Led by SAS-L's Macro Maven Ronald J. Fehd SAS Macros and the SASMacro Language are simple yet powerful tools. Once you understand how to use and write macros, your next task is to understand how to you use them consistently and more importantly, intelligently, from a programmer's point of view. This tutorial presents the basics of project design with an macro variable, proc step, data dictionary, macro conditional, proc freq, macro definition, macro put, sample, macro loop, output delivery system, macro facility 9
4 A Comparison of Binomial Proportion Interval Estimation Methods John Ulicny Some recent research has confirmed that the standard Wald (normal) confidence interval approximation for the binomial proportion is inadequate in key respects, especially for extreme values of p . Even for moderately large values of n the coverage probabilities can prove to be erratic for various specific values of p . This fact makes general rules for the use of the Wald method problematic. Alternative methods have been proposed, and this paper compares some of those alternatives with new capabilities built in to SAS Version 8.2 to calculate exact intervals. A decision rule is proposed for the selection of an appropriate technique. Also, a few extensions to other discrete distributions will be considered. This topic is relevant to both statisticians and programmers because of the fact that binomial proportion estimation is so commonly needed in a wide variety of situations, and the Wald (normal approximation) technique is taught in even the most basic statistics courses confidence interval, sample, binomial distribution, confidence level 7
5 A Few Ways to Use Macro Variables, Comparison Operators, and ".other=." Format Statements to Shorten Your Programs Scott Burroughs keep statement, format statement 2
6 A Generic Solution to Running the SAS System on the Web without SAS/IntrNet David L. Ward Many organizations are not able to afford SAS/INTRNET but desperately need to provide dynamic web-based content to users, usually in the form of on-line reports. Sample CGI scripts that invoke the SAS system have been offered at various user group conferences, but a complete alternative has not been available. This paper will demonstrate the installation and usage of this alternative, as well as show examples of reports generated real-time in a web-browser using only Base/SAS. You will learn to create HTML forms that pass parameters to a SAS program that displays a table or graph according to what a user has chosen. You will also learn to use ODS to generate presentation-quality output macro variable, sas base, proc step, data step, proc sql, sample, macro definition 8
7 A Macro to Report Problematic SAS Log Messages in a Production Environment Tianshu Li,
John K. Troxell
The SAS log file provides important information for debugging and validating SAS programs. In production environments, however, when a large number of programs are run, important information may be buried within thousands of lines in a large number of log files. Manual scanning of voluminous log file output may be impractical or error-prone. A macro is presented that prepares a report of the results of an automated scan of all the log files in a specified directory. For each ERROR or WARNING, and for each NOTE in a specified list, the report provides the log file name, the line number, and the text of the first line of the message. Considerations involved in deciding which NOTEs to exclude/include from the report are discussed macro loop, macro parameter, sas log, macro variable, sas function, %if-%then-%else, macro definition, proc step 3
8 A Microsoft Access Based System, Using SAS as a Background Number Cruncher David M. Kiasi In Access based systems, using Visual Basic for Applications (VBA) to perform intensive number crunching is cumbersome and slow. Using ODBC, I have managed to use SAS as a background processing tool to perform these intricate calculations quickly. Also, the development time with SAS is far superior to VBA for this use. To the user, SAS is in the background and never interfaces directly with him/her sas batch, libname statement 4
9 A Modular Approach to Portable Programmiing Michael A. Litzsinger,
Lisa Kaye Brooks
macro variable, options statement, macro facility, macro definition 8
10 A Novel Approach to Developing a Patient Profile Reporting Application Curtis Wolf,
Steven Light
This paper describes a novel approach used to develop a patient profile reporting applic ation using Base SAS in the Windows NT Operating System. A patient profile report is a display of the clinical study data that is collected for an individual patient, organized by time and data category. Patient profiles are often us ed to report clinical study information to the FDA as part of a regulatory submission. The approach used was to publish the patient profile report as data (to a SAS dataset), containing all of the appropriate titles, data, footnotes and pagination information. This approach is significantly different from using conventional reporting procedures or data null-based reporting. This paper discusses the development methodology employed in this project, the patient profile report requirements and patient profile application architecture dataset, clinical trial, sample 6
11 A Simple SAS Macro Technique to Build a Report Data Set Christianna S. Williams Often one needs to reproduce the same statistical analysis for many samples or for many variables. However, frequently the desired report requires only a small portion of the standard output for a given set of analyses. Manually extracting the needed information to produce a presentable report is tedious and error prone. Further, this effort must be duplicated if the input data changes. With the Output Delivery System (ODS) virtually all procedure output is now available in the form of SAS data sets and is thus amenable to further manipulation. This brief paper presents a fairly general method to extract specified information from these output data sets and use it to build a data set that can then be presented using one of the SAS reporting procedures. A simple illustration using statistical output from PROC FREQ and reported using PROC PRINT will be described proc step, proc freq, proc print, macro definition, predictor variable 2
12 A Web-Enabled Reporting Prototype Using JSP, JavaBeans, and SAS Tim Liu This poster describes a web-enabled reporting prototype consisting of JavaServer Pages TM (JSPTM ), JavaBeansTM , and SAS tools. This lightweight prototype allows users to initiate SAS processing and retrieve results through the standard browser interface. It shows that all tasks such as verifying login, registering new users, accessing database tables and running SAS can be implemented by JavaServer Pages and JavaBeans interacting with web server, relational databases and SAS batch job, access control 2
13 Accessing and Utilizing the Win32 API From SAS Christopher A. Roper format statement, sas programmer 7
14 Advanced Macro Language Techniques. Destiny Corporation (a company) macro variable, call symput, symbol table, proc sql, data step, sas log, proc step, call execute 7
15 Advanced SQL Techniques Destiny Corporation (a company) group by, proc sql 5
16 All I Really Want ... A Wish List for New SAS Software Enhancements Peter Parker Having used both SAS software and computers for over 21 years, I've seen many changes in both, almost always good. Major improvements will continue to be made and we'll look back five years from now, amused at what we called state-of-the-art today. Remember when a 486 PC with a 20 MHz clock speed, 4 MB of RAM and a 300 MB hard drive was considered the dream machine? Remember when packing a million transistors on a chip was a major breakthrough? The latest computer chips have over 42 million transistors. In order to advance technology, we must first determine what needs to be improved. While SAS software has proven itself to be adaptable, dependable, and robust, it, too, will become better. Here is my wish list of changes that I hope will become part of the SAS software system soon: System Enhancements 1. Run- time SAS applications 2. Multi-threaded processing Application Development Enhancements 1. Import Wizard for most types of data 2. GUI code generator 3. Intelligent Printing 4 sas base, macro definition, proc step, excel 7
17 An Automated Approach to Create a SAS Macro Program with Formatted Variables and Labels from Table Description Files of a Database Hongwei Zhang A clinical trial may have more than 70 tables with hundreds of fields in each table. Moreover, some of the tables may change each time you have the data. When comma-delimited data are provided, using list input to read the external data in to SAS data c an be very painful and time consuming because you have to write all the variable names and corresponding formats and lengths in the SAS program. You may need to write a label for each variable as well. This macro can automatically cr eate SAS macr o codes with form atted SAS va riables and the labels for the "INPUT" process by using the information provided in the table description files of a database. It can also be modified to create SAS codes to read data in other text formats macro definition, proc transpose 2
18 An Automated Reporting Macro to Create Cell Index Shi-Tao Yeh proc step, macro definition 5
19 Analyzing Complex Sample Survey Data: A New Beginning Linda Tompkins,
Arlene B. Siller
The National Center for Health Statistics conducts surveys with probability-based complex sample designs to produce estimates of health conditions for the civilian, noninstitutionalized population of the United States. Researchers usually present descriptive statistics such as means, totals, and their standard errors. However, in order to make statistically valid population inferences from sample data, standard errors must be computed using procedures that take into account the complex nature of the sample design. This paper compares estimates produced with PROC MEANS, Version 8's PROC SURVEYMEANS, and an alternative program, proc calis, proc step, sample, interval variable, proc freq, proc surveymeans, regression analysis, proc means 3
20 Analyzing Network Management Data with the SAS System Tracy L. Lord,
Charles E. Keeler
Network Management challenges are growing at a rapid pace. With more businesses becoming dependent on their network infrastructure, the need for proactive network diagnostic analysis is becoming a necessity. Network problems and outages have devastating impacts to businesses. The methods of collecting and analyzing network data continue to be an integral part of maintaining "network harmony". This paper describes a method for analyzing Network Management data including the building of an Information Warehouse, data interrogation, and report presentation via the Web. Sharing this data with network administrators and technicians has saved IBM time and money and has helped turn reactive network maintenance into proactive network monitoring network data, data science 3
21 Another Simple SAS/AF Program to Manage SAS/CONNECT Sessions Richard L. Downs Jr. This paper highlights a simple SAS/AF program that assists with several basic SAS/CONNECT tasks. A user only needs to know the computer's name to sign on or sign off using a point-and-click approach. The program also handles defining libraries on other computers and reassigning these libraries the next time the user connects. Additionally, the program uploads/downloads SAS data sets and catalogs and submits SAS programs on the other computer catalog, data wrangling 2
22 Appendix Numbers: A Macro to Eliminate Hard Coding Daphne E. Ewing When a project requires appendix numbers to be displayed on each of many output displays, and there is a possibility of them being modified, even once, hard coding them into each program makes a change of this nature time consuming and tedious. Within the report code, be it DATA _NULL_ or PROC REPORT, a macro call can dynamically generate the appendix number making this dynamic portion of the display easy to maintain proc report, proc step, macro variable, macro definition, %if-%then-%else 2
23 Applying Categorical Data Analysis to Multi-way Contingency Table-Location, Accident Type, and Related Factors With Severity. Li wan Chen This analysis was undertaken to explore the underlying factors and contributing causes associated with car- semitrailer collisions at specific types of locations (e.g., intersections). The data for this effort was acquired from the Federal Highway Administration's Highway Safety Information System (HSIS), which contains multi-year, multi-state data on accidents, roadways, and traffic volumes. The focus of this paper is on the statistical analysis strategy and procedures applied to determine the association of crash location, type, and driver variables and the severity of the resulting crash. A series of discrete categorical analyses were conducted using the procedures available within BASE SAS and SAS/STAT. Other software packages were utilized to assist with the presentation of the data. The distribution of the variables is presented along with a fitted model, which represents the explanation of observed association among variables response variable, likelihood function, sample, proc freq, predictor variable 10
24 Array Tutorial (2) $ Beginning Intermediate; Marge Scerbo This tutorial will present the basics of array statements and show easy to intermediate examples of usage. Arrays are SAS DATA STEP statements that allow clever programmers to do a great deal of work with little code. These statements provide a method to process the identified variables as a group rather than individually, therefore saving both machine and programmer time. This paper should help lower the attendee's anxiety level when using arrays do loop, array, missing value 7
25 Battle of the Titans: REPORT vs. TABULATE Daniel E. Bruns,
Ray Pass
Are you in a quandary about whether to use PROC REPORT or PROC TABULATE for a certain report? Are you unsure which one will give you the control and flexibility to produce the report the way YOU want it to look? If you have these and other questions about the pros and cons of REPORT and TABULATE, this presentation is for you! We will discuss, using actual examples, the strengths (and even a few weaknesses) of two of the most powerful reporting PROC edures in the SAS System, thus providing with you the wisdom to help you make that sometimes difficult decision of which procedure to use to get the report you really want and need proc step, proc report, proc tabulate, proc means 2
26 Beyond HTML: Using the SAS System Version 8.2 with HTML and XML Frederick E. Pratter output delivery system, libname engine, dataset 4
27 Calculating Age in One Line of Code Wei Wang There are many ways of calculating a person's age based on a predefined date and the person's birthday. Some methods fail to calculate a correct age, particularly when the birthday falls on a leap year. Oftentimes, a precise calculation is necessary. This paper presents a single line solution to accurately calculate age that takes into account leap year and non-leap year birthdays proc sql, proc step 2
28 Changes & Enhancements for ODS by Example (through Version 8.2) Sandy McNeill The purpose of this paper is to show through example some of the new ODS features and options that have been added for SAS Version 8.2. Some of the highlights are: production PDF destination; template options which allow the invocation of a macro or evaluation of an expression using values from other columns on the same row; in-line formatting for the PRINTER and RTF destinations which allows a finer control over page breaks, subscripting, superscripting, formatting of particular words in a cell instead of the entire cell; and style control for titles and footnotes for the PRINTER and RTF destinations. This paper will talk about each of these topics along with some examples proc step, proc print, title statement, footnote statement, proc template, user-defined format, output delivery system 7
29 Characters, Tokens, Statements, and Steps: What the SAS Supervisor Sees in Your Program Rick Aster To understand and solve some kinds of programming errors, it can be helpful to consider what the SAS supervisor does after you submit a program. How does SAS understand and carry out the actions you have written in your program? To put it another way, how does it know what the program means? The answers can be found in the kinds of objects the SAS supervisor looks for in a SAS program and the specific rules and processes it follows to identify these objects. When you can see a SAS program from this point of view, it is easier to avoid many common programming errors and easier to understand the error messages that the SAS supervisor writes when a program is not written correctly. Finding the Parts of a Program In order to execute a SAS program, the SAS supervisor has to slice the program into parts it can work with. The most important of these component parts are the program lines, characters, tokens, statements, and steps of the program proc step, numeric constant, error message, macro facility, e., proc sql 4
30 Community Right-to-Know: Using the Web to Publish Toxic Chemical Release Information at the U.S. EPA Myles E. Powers Toxics Release Inventory (TRI) Explorer is a web-based tool that enables TRI data users to compile their own reports on-line. Under the Emergency Planning and the Community Right-to-Know Act, EPA is committed to making TRI data easy to access. TRI Explorer was developed to support this goal. TRI Explorer allows users to generate their own reports on specific chemicals, and on chemical releases by industry sectors, by environmental media, by geographic area, and by individual facilities. With the help of the TRI Explorer, users can easily determine what toxic chemicals are present in their neighborhood, how the releases are changing over time, and how their own situation compares to other communities around the country. TRI Explorer provides data for all reporting years (since 1988) and the data are synchronized with the published Public Data Release documents. The Explorer is available on the web at www.epa.gov/triexplorer proc sql, data validation rules 2
31 Connecting Simply with SAS/CONNECT Software Michael G. Sadof Since it is common to have data residing across several platforms, it is important to utilize the strengths of each computer system proc step, proc download, filename statement, libname statement, options statement, dataset, proc upload, sample 4
32 CONNECTing with SAS Version 8: Virtually Transparent to the Use Lawrence W. Altmayer Whether used to connect from home to office or personal computer (pc) platform to mainframe network, it is straightforward with SAS version 8. We know it can be more efficient in many ways to store large data sets in a mainframe environment, and access them from the pc. This paper looks at using pc SAS/CONNECT to access SAS course data sets from a UNIX mainframe, a concept readily extended to larger data sets in practice. We will also touch on the basic configurati on for accessing a SAS/AF application when clicking on a SAS icon on a Windows desktop. Next we look at ways to verify the data are being read from the UNIX ma inframe. Finally, we make a small change to the properties of the main menu 'Exit' push button to immediately return to the desktop, upon exiting the application. We will also see that it is eas y to convert current version 6 applications to version 8, using Destiny course materials as a starting point libname statement, proc copy, proc step, options statement 4
33 Control With PROC CONTENTS Gary M. McQuown PROC CONTENTS can be used for many tasks beyond the obvious. From assistance with data manipulation to directing data driven applications, PROC CONTENTS may just be the tool you need proc step, proc contents, proc sql 1
34 Creating High-Quality Reports in SAS Version 8: How to Make It Look Like Your Boss Wants It Peter C. Landi,
Kevin Payton Delaney
Before the arrival of Version 8, SAS programmers had to use creativity to generate formatted text documents from listing output. With the addition of the V8 Output Delivery System, we now have a template for graphically-appealing tabular output. However, getting ODS to format this output can be, well…, odious. If your boss wants high-quality text output, you currently have two choices: (1) creating non-editable PDFs from the ODS PRINTER destination, or (2) using the new ODS RTF destination for documents which can be edited with a word processing application like Microsoft Word. Our paper will discuss the benefits and shortcomings of each, and illustrate a third choice we believe to be simpler and more expeditious for those using a Microsoft Windows operating system proc step, sas programmer, proc report, proc template, excel 9
35 Creating Macro Calls using Proc Freq Wendi L. Wright Imagine you were asked to get a series of statistics/tables for each country in the world. You have the data, but when you run a distribution of country you find you have 680 countries. Assume at this point that using different SAS procedures with the 'by' statement will not give you what the client wants. Obviously the easiest method is to create a macro to get the statistics and call the macro once for each country. However, writing the macro calls for all 680 countries would be very tedious. And the next time you are asked to run this, the countries may be different and you would need to retype many of the macro calls. There is a way to use macro language and a PROC FREQ to generate the macro calls you need. The technique is also very useful if you need to run statistics for levels of several demographic variables (e.g macro variable, macro call, proc freq, proc step, sample 5
36 Creating Web-Based Applications Destiny Corporation (a company) dataset, advanced sas 10
37 Data Transfers Across Diverse Platforms Denis Michel SAS programs written on one system often have to be run on a different system. Th is issue has mandated that programmers write portable SAS code that can easily be modified for different platforms. Data and output are also transferred routinely. In the pharmaceutical industry, we transfer various file types, including data, programs, and output, among global affiliates, other companies (e.g. contract research organiza tions) and regulatory agencies (e.g. FDA). The systems and policies in place at the organizations sending and receiving these files are diverse. This paper focuses on the issues involved in transferring files across these diverse platforms from a pharmaceutical SAS programming perspective. These issues include SAS transport files, FDA Guidelines for electronic submissions, converting SAS files to other formats, documentation of data contents, transfer medi a, and writing SAS programs for portability proc step, dataset, excel, libname statement, proc copy, pharmaceutical industry, proc cport, txt, user-defined format, data transformation, proc contents, catalog, format statement, time variable 5
38 Defining colors with Precision in your SAS/GRAPH. Application Perry Watts The reference manual for SAS/GRAPH software contains a detailed section describing color-naming schemes. A review shows that a color can either be referenced by its NAME, RGB, or HLS code. NAME is the most intuitive, but "very pale purplish blue", c oded as VPAPB, is very much in the eye of the beholder. CXC018E5 for RGB (red/ green/blue) and H017678B for HLS (hue/light/saturation) aren't much help either. SAS provides a Tektronix Color standard for the HLS color system, but it is in varying shades of gray in the printed version of the manual! Microsoft PowerPoint together with a SAS macro pro- vides a simple solution to the problem. The presentation shows how to get to the PowerPoint screen that is equipped with a color map, a slide bar, and displays of the RGB code and corresponding color that change when the mouse is moved over the color map. The SAS macro RGBHEX converts the chos en Microsoft decimal numbers to the hexadecimal RGB code that SAS understands macro definition, ods html 2
39 Design and Validation of a Program for Random Drug Testing Donald T. Gantz This paper discusses the design and statistical testing of a program that implements random drug testing. Such drug testing is required by insurance companies for company drivers. The program is designed to be run by someone who never sees any program code, but simply maintains an electronic file of employees and executes the program daily. Specifications require that tests be performed at random and that each employee be tested at least once a year. In each execution, the program adaptively sets the drug testing intensity to meet specifications, determines if a drug test will be performed on that day and if so, selects the employee to be tested. Reports are written and updated providing a testing history. The program uses base SAS with heavy macro language utilization. Since, ideally, nothing about the program can be deterministic, random number calls use the system clock, contributing to the possibility that what the program really delivers is not what the code promises ranuni, scatter plot, data step, hypothesis testing, poisson distribution, macro loop, proc sort, proc step 9
40 Determination and Interpretation of the OOP for ROC's with PROC LOGISTIC Robert J. Gallop Sensitivity and specificity summarizes the performance of a diagnostic test with a positive/negative outcome. Sensitivity and specificity are, respectively, the chance that a true responder and a true non-responder will be identified as such by the diagnostic test. A good test ought to have high values for both, although practical constraints make this hard to attain. When the test outcome is quantitative, not simply positive or negative, a standard approach to summarize the test's performance is to examine all possible cutpoints. Each cutpoint yields an estimated sensitivity and specificity. As the cutpoint varies, the locus of sensitivity and 1 minus specificity yields a bow-shaped ROC curve which displays the performance of all possible decision rules. A diagnostic test that performs well is characterized by a curve that rises quickly and is close to the upper left corner of the graph. Recent attention has been given to determining the optimal threshold cutpoint for the ROC curve logistic regression, regression analysis, logistic distribution, roc curve, proc logistic, standard deviation, predictive probability, sample, proc step 6
41 Developing a Dynamic Reporting Facility using INTRNET in SAS version 8 Amanda F. Sardenberg,
Kenneth P. Stulik
In developing a production data collection environment, flexible access to raw operational data is a highly desirable feature for purposes of process optimization. Using SAS/INTRNET and SAS/CONNECT, we can allow dynamic reporting capability through a standard browser interface even in a cross-platform computing environment. This paper will discuss the methodology involved in rapidly developing such a reporting system in a production environment involving high- volume survey research data. Through SAS/SHARE, SAS datasets of operational data for a telephone center are accessible to a Sun/Unix server doubling as an application server over a wide area network. An NT server functioning as a broker and housing HTML pages serves to process queries by analysts using a client web browser. Ultimately, SAS processes and returns the HTML output via the ODS utility in SAS Version 8. SAS/INTRNET serves as both the middleware and query builder in such an N-tier configuration sample, macro variable, macro definition, dataset, macro loop, ods html, proc step, proc sql, %if-%then-%else 9
42 Developing and Implementing Programming Standards Without Stifling Programmer Creativity Paul Doucette The focus of this paper will be to highlight the lessons learned from efforts desi gned to develop and implement standard programming techni ques and procedures. The goal of these efforts was to improve the quality of code as well as enhance programmer produc tivity without stifling creativity. The paper will address the just ification for implementing programming standards including adherence to industry regulations and requirem ents as well as general productivity and quality issues. Obstacles and challenges encountered during the course of the developm ent of the standards as well as those encountered during implementation will also be discussed. Finally, some practical dos and don'ts are presented for those that may be considering a similar effort adam dataset, clinical data, clinical programming, pharmaceutical industry, cdisc 5
43 Drill-Down Links Using PROC REPORT and ODS Sanja Batljan How often users have asked you if you can reproduce a report that they have gotten two months ago? If you do not anticipate this you may find yourself struggling to identify historic data and recreate the report. One approach to get around this problem is to save a hard copy of the all monthly reports in the folder. Another alternative is to save a snap shot of data from 2 months ago in order to re run the report. It is always easy to forget to do these steps and then you might be in trouble. Thanks to the Output Deliver System (ODS) we can put any procedure output into an HTML file and publish the file on company's Intranet. Users can then browse those reports whenever they want and for all previous time periods. This paper will demonstrate how to keep track of historical reports in HTML format and how to navigate those reports. The paper will also cover drill-down links using PROC REPORT on the sample report for each time period macro variable, proc report, proc step, sample, ods html, proc format, order by, macro definition, output delivery system, proc sql, sas output 6
44 Dynamically Build a PROC FORMAT for Subsetting Large Datasets Warren E. Stinson proc format, proc step 1
45 Exporting Large SAS Data Sets to MVS External Files in a Production Setting Helen-Jean Talbott Sometimes external files provide the easiest method to exchange data. Our Credit Policy department relies heavily upon SAS software for data management, analysis, and reporting. Frequently we need to export data from our SAS data sets to MVS external files in order to send data to another company that does not have SAS capabilities. SAS FILE and PUT statements work very well for creating external files, but our files are large (more than 300 variables). We w ant to avoid writing specific code for each variable and we need to implement a solution in production that is flexible for handling SAS files where variables change frequently. This paper shows how PROC CONTENTS and the macro language can simplify this task. The end product is an external fixed-format MVS file containing all the variables from the SAS data set, written in alphabetical order, along with supporting documentation showing the final file structure flat file, proc contents, dataset, proc step, file statement, put statement, macro variable 3
46 Extensible Data Statistics: XDSTAT, A Generalized SAS Macro for Calculating Statistics John H. Adams,
David M. Hartman,
Chris Moriak,
Rick Vinisko
A common use for SAS is to calculate statistics and display the results. Although some may promote the notion of "one solution fits all" for reporting, users like the flexibility to design and construct their own tables. Also, many users prefer to create tables without waiting for a central programming group to process their request. XDSTAT is a macro that provides users with a method to calculate nearly 40 statistics (including distinct counts and percentages) and display the results in a presentation- ready table according to the users own table design. Users do not have to be familiar with SAS procedures like UNIVARIATE, MEANS, and SQL to calculate statistics, nor do they need to know REPORT or TABULATE to generate tables. XDSTAT can be used as a stand-alone macro, or it could be used as a kernel around which a reporting system or environment can be built (i.e., creating an AF front-end) macro variable, class variable, proc sql, macro call 8
47 Fast and Easy Ways to Annoy a Statistician: The Sharing and Presentation of Data Between a SAS Programmer and a Statistician Richard M. Mitchell Although even the best novice SAS programmers may adapt quickly to their work environments, it often takes many years of hard work and millions of lines of SAS code before one may fully understand some of the best and most effective ways to annoy a statistician. When one is having a bad day, or is just plain bored, it is often fun to generate abundant amounts of output where statisticians are forced to sift through page after page for their precious analysis results. It is also amusing to provide as little amount of output and documentation as possible to help clarify discrepancies or oddities of the data for which one knows the statistician will surely question at some point down the road. This paper discusses how a SAS programmer may "make or break" a relationship with a statistician based on the effectiveness of what data are shared and how data are presented proc step, missing value, sas programmer, sas log, proc logistic, regression analysis, logistic distribution, odds ratio, proc freq, proc print, label statement, frequency analysis, sas output, sample, proc univariate, interval variable, response variable, logistic regression, estimate, covariance, normality test, proc contents, proc reg, outlier 10
48 Five (or more) alternatives for record selection from one file based on information in another Michael S. Zdeb Given the task of selecting specific records from a data file based on information in a second file, many users new to SAS automatically resort to a MERGE. There are many alternatives to MERGE that are potentially more efficient from the perspective of both programming time and execution time. Two raw data files are used to illustrate five (or more) methods of selecting records from a large file based on a smaller file of social security numbers. The cpu time, proc step, proc sql, dataset, data step, proc sort, proc format 3
49 FTP File Access Method - Leave That File In Place Jack N. Shoemaker In today's networked environment, it is common to find that the data need for application A on server B is often stored on server C. Transferring, or copying, the data from server C to server B is one method to solve this problem. If your application is a SAS program reading data through a FILENAME statement, the FTP access method provides a means to run your application while leaving the original data in place. FILENAME Syntax The basic FILENAME statement takes the form FILENAME myfile '/path1/path2/data.txt'; This allows you to read or write to "data.txt" in a DATA STEP using INPUT and PUT statements referencing MYFILE. More generally, the FILENAME statement allows you to attach your SAS program to a data stream with alias MYFILE. In this case that data stream is just a file. The FTP access method allows you to use the FILENAME statement to alias a direct connection to an FTP channel filename statement, sas log 2
50 Getting connected with your DATA: Using SAS/CONNECT and SAS/ACCESS to work with data housed in a remote environment Kevin Payton Delaney This paper will provide an overview of SAS/CONNECT and SAS/ACCESS software for accessing and manipulating databases located in a remote environment. Using the example of an Oracle database on a remotely located Unix server, the author will demonstrate many of the main features of SAS/CONNECT and SAS/ACCESS. SAS/CONNECT topics to be covered include: connecting to the remote server, submitting SAS code remotely, and moving data back and forth between the server and client. SAS/ACCESS topics to be covered include: interfacing with the data using both the LIBNAME statement with SAS/ACCESS specific options and running a query against the data using the SQL pass through facility. Issues of efficiency and practicality will also be discussed proc sql, proc step, relational database, libname statement, proc download, sql pass-through 8
51 Graphing Them Together: Overlaying Plots with Macros and SAS/GRAPH Lawrence W. Altmayer SAS/GRAPH is a powerful tool for creating plots of series of data. When we want to plot more than one series of data on a set of axes, using multiple symbol statements allows us to do this. This paper demonstrates a way of using macros to concatenate several data sets into one and prepare it for the overlay, since SAS/GRAPH can only read one per plot. We then use macros to specify the symbols to use, and macro looping to generate the actual statements. The paper also gives details on titling. Finally, we d iscuss how to use the symbol statement to specify the size and type of symbol, which may not be as straightforward as it seems macro variable, proc gplot, proc step, macro loop 2
52 Graphs Without SAS/GRAPH Howard L. Schreier The task the paper tackles is to generate a large number of simple charts for a web site under the situation where SAS/GRAPH software is not available. The solution employed is to use Microsoft EXCEL instead, and have SAS Base software drive the process via Dynamic Data Exchange excel, by group processing 7
53 Having a Ball with Strings: SAS Character Functions Ronald P. Cody character variable, substr function, compress function, input statement, translate, character functions, proc step, numeric variable, proc contents, string functions, upcase function 8
54 Help! I need Help with the Help!?! Kevin Payton Delaney SAS OnlineDOC Documentation provided with Version 8 is a comprehensive resource, providing electronic, indexed, and searchable copies of all official documentation published by the SAS Institute. However, such a complete reference can be difficult to navigate. The task can become almost insurmountable for a new SAS user who isn't quite sure whether he or she is looking for a procedure, a statement, or an option, or even which SAS component they are working in. This paper is designed to provide a systematic overview of the structure of the OnlineDoc. Using an example of the FREQ procedure, we will identify what types of items are procedure statements, and PROCEDURE OPTIONS. By adding SAS statements, formats, global options and ODS statements, we will gain experience navigating the Online Doc. Having completed our tour of the Base SAS Online Doc, we will briefly describe the documentation for some of the other more popular SAS components, such as sas base, proc freq, proc step 8
55 How Do We CNTL It? Janet E. Stuelpner A control data set contains information about informats and formats. You can use the information in the control data set to create a new format (or replace an old one) using the CNTLIN option on PROC FORMAT. But what is the minimum amount of information that you need to create a new format? What other information can I add to enhance the new format that I want to create? This paper will give a brief overview to get you started creating data driven user-defined formats proc format, proc step 2
56 How to Change the Template and Table of Contents for SAS Web Applications Veronica Y. Rath This paper addresses two key areas: (1) creating templates; and (2) changing the table of contents in SAS Web design. Example code for changing defaults for the table of contents is provided. Also, a key to template design and example templates are included. This paper is meant to assist developers designing web pages using SAS. An example application with graphs is presented in this paper proc step, proc gchart, if-then-else, output delivery system 5
57 How to Go from SAS Data Sets to DATA NULL or WordPerfect Tables Anne Horney Clinical trials data re ports often contain man y tables produced on a recurrin g basis, and a wa y is needed to move information from SAS procedures into publication quality tables without s pending hours transferrin g and checking numbers. Combinin g output values from several procedures into one table or page of a re port is often necessary. The data values/information can be calculated using several methods such as PROC FREQ, PROC MEANS, and DATA steps. The table can be created usin g PUT statements or the data can be written to a delimited ASCII file that can be mer ged into word processing or spreadsheet packages. An example of a report table created by both DATA _NULL_ and WordPerfect will be shown sample, anova, proc anova, proc step 7
58 How to Represent Missing Data: Special Missing Values vs. 999999999 Quentin McMullen Data files often contain missing data. All too often these missing values are represented by numeric codes (e.g. 99, -9). Unfortunately, the use of numeric codes creates a situation in which the programmer understands that the codes represent missing data, but SAS views t he codes as non- missing numeric values. This can lead to the accidental inclusion of missing codes in numeric calculations and other similar errors. To avoid this possibility, programmers often convert the numeric codes to the standard SAS missing value code (represented by a period) or write code that explicitly excludes the missing codes from calculations and reports. SAS special mi ssing values present a better solution to this problem. They allow programmers to represent different types of missing values in a manner that allows SAS to recognize them as missing and treat them accordingly missing value, proc step, dataset, proc freq, numeric variable 4
59 I Hate SQL! Tips and Tricks for Using the Query Window Dianne Louise Rhodes This paper introduces the online SAS Tool, the SQL Query Window. Using the Query Window you can build complex SQL queries and reports, with only a little knowledge of SQL and PROC REPORT. This is a useful tool for checking and debugging programs that use relational data. It provides a GUI to link multiple tables and generate, modify, and save PROC SQL and PROC REPORT statements interactively. The output is delivered in pages, allowing you to scroll through the pages or go to a particular page. The queries can take advantage of the prompt feature, which allows you to parameterize a query for a value entered in a dialog box. SAS Version 8.0 for Windows was used to produce the screens for this paper proc sql, proc report, proc step, where statement 4
60 I'll Have the TABULATEs a la ODS Please, With a Table of Contents On the Side Ray Pass The advent of the Output Delivery System (ODS) in Version 8 (all right, it was really introduced in V7, but I still refer to V7 as V8 beta) of the SAS System is truly monumental in scope. It required rewriting all SAS procedures that produce output (not all do) and splitting out their "data components" from their "table definitions" (presentation format templates). We now have the ability to combine these components into customized "output objects" and to send them to different output "destinations", including casting them as HTML pages. When we do use the HTML destination, we also have the ability to produce our main content output as one component frame of a multi-frame page, the other possible component frames being either procedure or page oriented Tables of Contents. Although there are proc step, proc tabulate, macro variable, ods html, proc print, title statement, dataset, proc template, output delivery system, excel, raw data 9
61 Internationally SAS, More Than Just SUGI John W. Dennis excel, data mart 7
62 INTERPOLATION CALCULATION MADE EZ Julia Z. Zhang,
David C. Chen
Often times, programmers and statisticians encounter missing values in data points while constr ucting data sets for statistical analysis. Depending on the type of analysis being performed, it may be necessary to impute t hese missing values. Linear interpolation i.e., replacing the missing values with results derived from non-missing, adjacent values, is an example of imputation. Generally, linear interpolation implemented in a DATA STEP has involved use of LAG function, which returns adjacent values stored previously in the l ag queue. There is, however, no corresponding SAS function to return subsequent, non-missing, adjacent, values from observations not already read/SET into the step. Retrieving the necessary non-missing, adjacent values can be accomplished using a combination of the OPEN, FETCHOBS, VARNUM, GETVARN, GETVARC, and CLOSE functions in Base SAS dataset, data step, missing value, imputation, cpu time, sas base, proc sort, set statement, proc step, proc sql 4
63 Introduction to Enterprise Guide. Destiny Corporation (a company) sas enterprise guide, proc freq 6
64 Introduction to Enterprise Miner. Destiny Corporation (a company) regression analysis, data mining, logistic regression, logistic distribution 2
65 Introduction to the SAS Macro Language Destiny Corporation (a company) macro variable, macro facility, proc step, &variable, macro call, macro definition, proc print, symbol table, macro parameter, %macro parameters, automatic macro variable, keyword parameter, missing value, macro put, macro quoting function 6
66 INVALID: a Data Review Macro Using PROC FORMAT Option OTHER=INVALID to Identify and List Outliers Ronald J. Fehd Data cleansing, or as it is more euphemistically known: data review, often occupies too much of a programmer's time and energy. With a properly written data dictionary, a data set will contain appropriate formats for each variable; one can then cut and paste the format definitions into PROC FORMAT value statements and label all outliers with the value statement option: other="INVALID". This routine combines a FORMATS catalogue and CONTENTS data set, then uses that information to write data steps which select all outliers. Reports are written, by identifier, for print review and to file, for later use as includes for updating purposes. Expected audience is intermediate and advanced programmers and macro users proc format, proc step, macro variable, outlier 9
67 It's Alive! Creating a Living Report from Various Parts Sue Cross Faculty are increasingly experimenting with web-assisted courses, new tutorials, on-line surveys, and computer-based testing. All of these create tons of data and statistics, and usually a very plain report. Multiplied by the numbers of courses, students, and semesters, the faculty member ends up with a lot of very plain reports. I am using SAS/GE2 to glue all the pieces (the data, statistics, and graphs) into one interactive display that a faculty member can access using a browser. Using SAS/INTRNET and the REPORT procedure, the result is a report with traffic lighting, embedded graphs and hyperlinks. This paper is not really about teaching and tests. It is about freeing data from that two-dimensional report on your desk, giving it life, and sharing it over the Internet proc report, proc step 3
68 Leaping Nodes in a Single Bound: Supporting SAS MP CONNECT with Windows 2000 Advanced Server Carol A. Murphree Our institute provides computing support for academic researchers, many of whom perform complex statistical analyses with extremely large data sets. We maintain a cluster of Dell PowerEdge 6350 quad processor servers running Microsoft Windows 2000 Advanced Server. We describe the practical aspects of supporting the MP CONNECT feature of SAS/CONNECT software so that our SAS users can take advantage of the SMP architecture of these nodes. We provide examples of user documentation and sample programs that demonstrate the use of MP CONNECT on both single and multiple nodes. We describe two research applications of MP CONNECT on our system mp connect, sample, proc step, proc mixed, work library, data science 5
69 Lost in Space: Recovering unmeasured dimensions in spatial studies Haftan M. Eckholdt Research on spatiotemporal events are often missing one or more dimensions due to oversight or expense. In some cases, the recovery of those dimensions addresses existing hypotheses, and in some cases dimensional recovery brings about entirely new and unforeseen hypotheses. SAS can be used to recover space and time through a combination of geometry and fuzzy merges [DATA STEP] that produces 3-D objects and 4-D animations from 2- and 3- dimensional recordings. This approach begins by with an elaborate version of the original event: conceptualizing perspectives and reviewing the role of time. Logical geometric reconstructions of missing dimensions can be built upon information from existing data in measured dimensions [BASE & STAT]. Similarly, objects can be recombined through the use of fuzzy spatial merges in the new geometry. Animation techniques can then be used to build, melt, and surgurize the new data object in virtual ways [GRAPH: gifanim] type ii error, type i error, data science 8
70 MacStat: A Statistical Analysis and Reporting System using SAS Macros, Visual Basic, and Microsoft Word Richard Thomas Two of the many challenges that exist for statisticians at AstraZeneca is one, generate st atistical analysis without reinventing the wheel and two, how to convert text-based SAS output into Microsoft Word tables (and eliminate the manual typing process). This paper details the MacStat system was designed to solve these problems data science, confidence interval, sample, proc step 6
71 Making Remote Processing Less Remote Chris Moriak Remote processing can be an extremely efficient macro variable, proc step, work library, data step, libname statement, proc contents 7
72 Making Sense of PROC TABULATE Jonas V. Bilenas The TABULATE procedure in SAS provides a flexible platform to generate tabular reports. Many beginning SAS programmers have a difficult time understanding the syntax of PROC TABULATE and as a result tend to avoid using the procedure. This tutorial will explain the syntax of PROC TABULATE for the beginning programmer and offer a framework for generating a report using PROC TABULATE. The data used in this paper represents simulated consumer credit card usage data and the code was developed using version 6.12 of SAS class variable, proc step, proc tabulate, proc format, sample, odds ratio, proc freq 5
73 Mapping Alaska Along With US Counties Adeline J. Wilcox I share my experience with mapping Alaska using the SAS map data sets named COUNTY, COUNTIES and USCOUNTY. Some differences among these three data sets will be summarized. I report difficulties mapping Alaska on the same page with the rest of the United States and describe how deleting data from the Alaskan county equivalent named Aleutians West Census Area improves the appearance of maps made with COUNTIES. Changes in US county FIPS codes encountered while using SAS to analyze Census 2000 data will be described. SAS/GRAPH mapmakers and those who use FIPS codes with longitudinal geographic area data may find this information helpful. SAS users interested in changes in US county geography before the 1990 census will want to look at the ANOMALY data set distributed with SAS/GRAPH Version 8.1. SAS users who want documentation on changes in US county FIPS codes between 1990 and 2000 can find them tabled in this paper. I proc step, proc gmap, response variable 7
74 Migrating Your SAS ODBC Application To ADO David Shamlin Do you use the SAS ODBC driver to incorporate SAS data into your applications? You can simplify your applications by using Microsoft's ActiveX Data Objects (ADO) and additional features supported through the SAS/SHARE Data Provider. This paper describes how to convert your ODBC data sources to ADO Connection objects, how to use these objects to access SAS data and how to leverage SAS/SHARE servers using ADO proc sql, select, missing value, where statement, update statement 7
75 MISSOVER, TRUNCOVER, and PAD, OH MY!! Or Making Sense of the INFILE and INPUT Statements Randall Cates The SAS System has many powerful tools to store, analyze and present data. However, first programmers need to get the data into SAS datasets. This presentation will delve into the intricacies of reading data from sequential (text) files using the DATA STEP and INFILE and INPUT statements. Discussion will focus on the different options available when reading different types of text files. For example, when should you use the MISSOVER option and when is the TRUNCOVER option more appropriate. This paper assumes the audience has basic knowledge of reading text files using the DATA STEP (Base SAS ) and is appropriate for users on any Operating System, although some options may be restricted input statement, infile statement, filename statement, dataset, list input, txt 7
76 Mrs. Clean Tackles Dirty Data Janet E. Stuelpner What is clean data and how do you clean it? This is an age-old question that has some pretty easy answers. There are some techniques that can be used to find invalid data values in both numeric and character data, missing values of any type and duplicate observations. Simple procedures and DATA steps can be used to ferret out inappropriate observations. This paper will illustrate some of the techniques used after data entry is complete and the data has to be reviewed and cleansed proc step, data cleaning, missing value, proc freq, where statement, numeric variable, proc print 3
77 New SAS V8 Tricks for Old SAS V6 Dogs: Tips from the Command Line Louise S. Hadden For those of us who can remember running SAS programs on punch CARDS (and even for those who can't!), the new capabilities of SASV8 can seem overwhelming at times. This paper will present a few "tricks" to make the transition from PROC PRINT to ODS a little smoother, by taking advantage of the nice, juicy bones that the SAS Institute has tossed us. These techniques, unless specifically noted as unique to a particular system, can be used with SASV8 in any operating environment, including Red Hat LINUX, Windows and AIX/UNIX (and presumably other UNIX versions) proc step, output delivery system, cpu time, proc surveymeans, proc print, options statement, red hat 4
78 No More Downloading - Using SAS/ODS to Create SAS Graphs and HTML Documents for OS/390 Systems Patricia Wingfield With the advent of mainframe web server software, such as IBM's 'WebSphere Application Server', and with SAS Release 8's new ODS facility, it is now possible to create HTML documents in OS/390 data sets - PDS, PDS/E or HFS. Graphs and web pages stored in these OS/390 data sets can be viewed via a web browser. It is no longer necessary to download the documents to another type of platform for viewing on the internet or intranet. This paper covers SAS coding techniques that you should find helpful for developing HTML and SAS/GRAPH documents for storing and displaying on OS/390 systems proc step, ods html, proc gplot, sample, proc report, proc tabulate 6
79 Now _INFILE_ is an Automatic Variable - So What? Howard L. Schreier In earlier versions of SAS software, _INFILE_ could only be used in the context of the PUT statement. Now it is an automatic variable. What are the practical benefits of this expanded functionality? character variable, automatic variable 2
80 Object-oriented Programming Using SAS/AF Software: An Electronic Mail Class Example Christopher Zogby Object-oriented programming (OOP) can greatly ease the burden of application development. One valuable feature of OOP is the persistent nature in which objects store their data and operations. The encapsulation of an object's data and operations make objects ideal for storing and processing application data. An electronic mail class is used to demonstrate why this feature of OOP adds value to the application development process excel, dataset 3
81 On the Relationship between Format Structure and Efficiency in SAS Perry Watts Processing large data sets requires that careful attention be paid to efficiency issues. Two books have been written about this important topic. Because the SAS format plays such an important role in data processing, it too should be as efficient as possible. To improve efficiency, a recom- mendation has been made to create sequential search formats from highly skewed c ontrol-in data sets ordered by start-value frequencies. The assumption made is that matches will be fast, because initial start values in the format occur so frequently in the data. In contrast, the default binary search method is assumed to be slower, because the collating sequence of start values reflects nothing about the structure of the data that are being for- matted. These assumptions are tested by recording resolution times for binary, sequential, and hybrid embedded formats against different distributions of start values created by serial applications of the SAS ranuni( ) function proc freq, frequency analysis, proc step, proc format, bar chart, order by, output delivery system 9
82 Optimizing Survey Research from Start to Finish Using SAS Software Lark Lee,
Yvonne Brandreth
Survey research demands meticulous attention to detail fr om the sample design stage to end analysis to produce high quality results. This paper discusses how the authors made a la rge, government survey project for the Federal Aviation Administration (FAA) of the General Aviation (GA) fleet manageable through a system of SAS code. Part icular attention is paid to using SAS for sampling, analyzing data and producing report tables. The authors inherited an annual survey that had a complex sample frame with little documentation of how the sample had been drawn in the past. The authors improved upon past surveys' standard errors using SAS code to optimize sample size. PROC SURVEYSELECT was then utilized to draw the minimum size of records specified within each cell of the two-way stratified matrix. After survey implementation, all survey data was read into a SAS dataset sample, proc step, power analysis, dataset, standard deviation, imputation 7
83 OS/390 DASD I/O Drill Down Computer Performance Chart Using ODS SAS/GRAPH & MXG Software Neal Musitano Jr. This paper displays a user example of an OS/390 Drill Down computer performance chart. The chart was output directly from a SAS/GRAPH batch job to the OS/390 Webserver. A test MXG Computer Performance Database was used for input data. The Drill Down SAS/GRAPH chart displayed was produced on an OS/390 Version 2.6 system using SAS/GRAPH Version 8.1 with the Output Delivery System - ODS and the SAS/GRAPH GIF driver. The WEB GIFS and HTML reports are updated daily on the mainframe intranet Webserver for viewing via a WEB browser. OS/390 mainframe computer performance data is collected using IBM System Management Facilities (SMF) and Resource Measurement Facility (RMF) data. The raw SMF/RMF data is processed with MXG and SAS software into an easily usable SAS format proc print, proc step 6
84 Parsing Web Logs with Base SAS Wei Wang Transforming web log data into meaningful information is the foundation for web mining and clickstream analysis. This paper gives a brief description of the Extended Common Log Format that is typically used by web servers to keep track of the requests that occur at a web site, and presents SAS code that reads the Extended Common Log Format web log into a SAS data set list input, dataset 3
85 Past, Present, and Future Theft Summarization by SAS Technologies Gerald Stewart This presentation illustrates some of the basic SAS methods that have been applied to organize and summarize vehicle theft information over a period of 17 years. Present creative and innovative uses of SAS technologies to store and analyze theft information are also presented with a focus on making transitions to future SAS techniques for storage and analysis of past as well as future data of this type. PROC TABULATE, PROC SUMMARY, Format Libraries, Insight, and Output Delivery System concepts are reviewed with respect to past, present, and future data handling tasks encountered with vehicle theft data sources proc step, calendar year, dataset, macro definition, proc means, proc tabulate, delimited file, report year, macro call, data step 10
86 Power and Sample Size Determination for Linear Models John M. Castelloe This presentation describes the steps involved in per- forming sample size analyses for a variety of linear models, both univariate and multivariate. As an an- alyst you must gather and synthesize the information needed, but you should be able to rely on the ana- lytical tools to accommodate the numerous ways in which you can characterize and solve problems. Ex- amples illustrate these principles and review relevant sample size, sample, correlation, anova, proc genmod, regression analysis, power analysis, proc mixed, standard deviation, covariance, multiple regression, partial correlation, fixed effects, proc reg, null hypothesis, one-way anova, primary endpoint, predictor variable 13
87 PROC REPORT - Land of the Missing OBS Column Ray Pass proc report, proc step, proc print 2
88 Processing Dates in Health Care Enrollment Data Thiru Satchi Health care claims databases were designed to process medical transactions but are increasingly used to conduct research. To accomplish this, it is important to account for the extent a patient has health care coverage, otherwise the results can be distorted. Unfortunately, for example, enrollment records usually have multiple start and end dates and demographic data for a single individual. In this paper, we will introduce a SAS program that analyzes all enrollment periods for an individual to determine if he was enrolled for an adequate length of time, based on adjustab le time criteria. We believe this is an invaluable resource for managed care organizations involved in the Health Plan Employer Data and Information Set (HEDIS) accreditation or any other organization dealing with date-sensitive processes. Keywords: Date, RETAIN, LAG, HEDIS insurer, insurance claims 3
89 Programming Squared (Writing Programs that Write Programs) James R. Johnson This paper will demonstrate several techniques using Base SAS and macros that will take your programming skills to a new level by giving you the power to write programs that write programs. These simple techniques, which are powerful used alone, are awesome when combined. Using these techniques when your application is appropriate, you can write one program that will act as though you wrote dozens of individual programs. These programming techniques will give you the ability to write more robust, highly flexible, intelligent programs that can extract data from little known sources, make decisions, write and execute program code depending less on user input. Programs using these techniques are more difficult to debug, but once validated, can be used over and over again by many projects. Although the techniques are simple, this paper is aimed at experienced programmers who know when it would be appropriate and efficient to use them macro variable, proc step, proc print, dictionary tables, proc sql, sas base, flat file, data cleaning, macro definition 6
90 PROTEOMIC COWS: Using SAS to Manage and Run Parallel Clusters for Gene Searching Haftan M. Eckholdt Using SAS to manage and run a LINUX / WINDOWS-NT based cluster of workstations (COW) to simulate a parallel processor puts the price of supercomputing well within most research budgets. The criteria for using COW's will be discussed in terms of their job symmetry and intermediate solution timing. Special problems, and their solutions are discussed including the fact that all COWs need: lots of smoothed electricity, lots of cool breezes; and lots of hard drives. Using three layers of file monitoring, job distribution, and data analysis, SAS can provide clever and cost effective paths to COW management and usage [X command, liquidity gap, parallel processing 6
91 Publishing User Documentation: PDF or HTML? Michael L. Davis At SUGI 23, the author presented the case for replacing paper documentation with electronic formats, and explained how to go about creating user documentation using Hypertext Markup Language (HTML). Since then, he has come to recognize that in many situations, Adobe Acrobat (PDF) files offer some attractive benefits over HTML files when publishing user instructions for SAS applications. This presentation will contrast the benefits and drawbacks of these two document formats. The focus will be the appearance, portability, ease of creation, and the software needed to read and print each format. The remainder of the presentation will be a tutorial on how documentation may be converted to PDF files by using either Adobe Acrobat or word processing program "plug-ins". Last, advice on some of the common traps in creating PDF files and how they may be avoided will be offered 9
92 Reading From Alternate Sources: What To Do When The Input Is Not a Flat File Michael L. Davis Most SAS programmers are comfortable creating applications when the input is in a SAS data set or flat file on the same computer. However, what do you do when your data is to be accessed from a web page or TCP socket? Can you read data on another computer accessible via FTP without first transporting the file? How do you read a SAS catalog entry? What if the data is from a device connected to your computer via an RS -232 interface? Can you read e -mail messages as data? How about reading databas e files as if they were SAS data sets. This presentation will illustrate SAS software features to handle these and other data input situations. Special attention will be paid to new features introduced with Versions 7 and 8, such as the SAS/ACCESS LIBNAME engines. FTP Access Method Most who have been using SAS software for an extended period are comfortable writing programs that use flat files as input filename statement, flat file 10
93 Recursion? SAS? Let.s Fake It! Stephen J. Rhoades Ever need a recursive routine in SAS, and then realize SAS is not recursive? Well with the use of SAS macros and a little ingenuity you just may be able to do it. Here's an example of what I mean. Not long ago I was given a challenge. How do you read portions of the same file an unknown amount of times? Suppose we have two files. The first file contains a number of unique product/store combinations and the number of units required from a detail data file. The second file, the detail file, contains product/store combinations with multiple records containing units. We need to randomly select records from the detail file within various product/store combinations to at least equal the number of units required for each of these combinations. The detail file usually contains more units than needed, but what about the other cases conditional do loop, proc append, randomization, proc step 6
94 Recyclable Code - Building and Using Generic SAS Macros for Ragged Data Marts Ralph W. Leighton data mart, macro variable, macro put, proc step, %if-%then-%else, macro loop, claims development, macro definition, proc means, macro facility, insurance claims 10
95 Replicate-Based Variance Estimation in a SAS Macro Julia L. Bienias I describe a program to compute design-based variances (i.e., variances adjusted for the sample design) for linear regression models, logistic regression models, and mixed models for a 2-PSUs-per-stratum complex sampling design. The program allows the user to choose balanced repeated replication or jackknife repeated replication for computing the variances. Although there are commercial packages on the market now that will compute variances using these and other methods (e.g., SUDAAN, WesVar), I wanted to create a program that was fully integrated into SAS, so that the user could take full advantage of the SAS System. The program is a macro that allows the user to specify the input data set, the full-sample weight, the replicates (an auxiliary program can be used to create the replicates), the independent and dependent variables, the variance estimation method, and other key variables sample, regression analysis, logistic distribution, logistic regression, proc mixed, proc step, proc reg, fixed effects, population, covariance 9
96 REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS Edward McCaney A primary need in the reporting of clinical trial data is the ability to periodically extract clean data from a clinical database management system. This paper presents the methodology currently in use by Centocor. REx (Reporting Effort Extraction) is a Microsoft Access 97 based application that extracts clinical trial data from an Oracle database using SAS/ACCESS and creates permanent SAS data sets. REx uses SAS macros to perform additional processing based on modifications (actions) requested by users. REx provides an interface to define actions, create and run extract code, archive extractions, and run reports. Additionally, the system has the ability to obtain metadata, update it with user-defined actions, and pass it to downstream processes clinical data, oracle, macro definition, proc sql, macro call, proc step, clinical trial, view 5
97 SAS Macro - The First Steps to Power H. Ian Whitlock The macro language is a powerful tool, but it can be dangerous in the hands of the naive. This tutorial takes the first steps in build ing a strong foundation to understanding of the SAS macro facility. Macro variables are introduced as parameters to a SAS program. Then %INCLUDE is added, and the power of this combination demonstrated. Macros are introduced as a better means of packagi ng code, and the consequences are explored with examples. Design issues and understanding are emphasized. The consequences of adding t he DATA STEP functions CALL SYMPUT and CALL EXECUTE to the programmer's repertoire are considered. As an extension, very simple PROC SQL code is introduced to make macro variables holding lists. The power of th is new tool is demonstrated with examples. If you restrict the use of macro to the above tools you have a dramatically more powerful language than SAS alone provides, and debugging is no har der than without these tools macro variable, macro facility 10
98 SAS Macros as File Management Utility Programs Christopher J. Rook This paper provides several SAS macros for file management and file conversion tasks. The SAS product used in this paper is SAS BASE, with SAS system installed on the UNIX and Windows operating systems macro definition, sas output, macro parameter 5
99 SAS on OS/390 Interacting With USS Hsiwei Yu,
Michael McInerney
SAS on OS/390, a.k.a. MVS, can read and write text files and can store data in Hierarchy File System (HFS). HFS is the file system used by Unix Support Services (USS) when USS runs under OS/390. Since SAS data set in USS, i.e. Unix from IBM, is in Cross- Environment Data Access (CEDA) form, this SAS data is recognized by SAS running on directory (or ASCII) based operating systems, for example Windows and other vendor's Unix (such as HP or Sun) dataset, txt, proc step 2
100 SAS Program Efficiency for Beginners Bruce F. Gilsen dataset, where statement, if-then-else, character variable, proc step, subsetting if, conditional do loop, input statement, proc append, set statement, numeric variable, sas function, flat file, missing value 10
101 SAS Programming Conventions Lois Levin proc step, dataset, error message, permanent dataset, options statement 7
102 SAS Routines for Calendar and Clock Elements Rick Aster Data values related to time are conventionally measured and re- ported as combinations of elements of the calendar and clock - for example, a date may be written as the month, day, and year. These composite values can be more complicated to work with than data values that are written as a single measurement. SAS provides a set of functions, formats, and informats that work with specific combinations of calendar and clock elements. International date formats let you work with time data in many different languages. In version 8, you can go beyond the built-in routines and create picture formats to write the date and time of day in any combination of calendar and clock elements. Linear Time In theory, linear time is as easy to measure as linear distance. All you need is a unit of measure and a point of reference, and you can make simple numeric measurements of any point in time. For a few applications, time is actually measured this way sysdate9, date variable, datetime, time, options statement, datepart, elapsed time, integer, proc step 5
103 SAS Shorts: Valuable Tips for Everyday Programming Jeff McCartney,
Raymond Hu
The tips presented in this paper should prove valuable to SAS programmers of all levels. Examples selected were developed over time by our company staff as practical solutions and have become part of our standard pool of resources. Examples are short and utilitarian in nature and include references to supplementary documentation such as SAS OnlineDoc proc step, sas output, proc print, sas log, proc printto, macro definition 6
104 SAS Stew Keeps Facilities Running Michael A. Mace At first glance, this applicat ion 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 applic ation 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, where statement 10
105 SAS User Support: Simple, Effective Web Page Design Bruce F. Gilsen,
Scott Hoenig
character functions, catalog entry 10
106 SAS-L, the worldwide virtual SAS community Michael S. Zdeb Have you ever thought, "Is someone else having the same problem with this SAS code? I think it should work!" or "It'd sure be nice to have someone around here who was working on SAS-related tasks like mine so I could ask them questions." When these thoughts arise, your first thought might be (and perhaps should be) SAS Tech Support. However, there's another source for help, SAS-L (the worldwide virtual SAS community). If you have access to e-mail, you can join the community by subscribing to a SAS-L LISTSERV list. This presentation shows you: how to become a SAS-L citizen (join the LISTSERV list); how to access the community to ask questions and get answers (send/receive SAS-L email); how to access the community to share your knowledge; how to go on vacation from SAS-L, either temporarily or permanently; how to reduce the frequency of mail you get from SAS-L (via newsgroup digests); how to access the 'storehouse of SAS-L wisdom' questions (answers in the archives) proc sql, proc step 4
107 SAS/ACCESS for Excel spreadsheets: A consultant's challenges Elizabeth A. Morgenthien For an offsite consulting statistician in the pharmaceutical industry, clients are often new companies that do not have a Biostatistics/Data Management function. As a result, data for analysis can be provided in many different ways: handwritten sheets, flat files, spreadsheets, SAS datasets. The use of EXCEL has become increasingly widespread and most clients have access to it - making it an appropriate medium for data transfer to the statistician. SAS/ACCESS for PC File Formats is a flexible tool for converting data in an EXCEL spreadsheet to a SAS dataset; however, its functionality can be perplexing. Difficulties with EXCEL versions, missing data, labels and formats will be described along with their resolution excel, format statement, proc step, dataset 2
108 SAS/Connect software: Files and Operating Systems Albert Chang This paper discusses two approaches to using SAS tables located on multiple operating systems: PROC UPLOAD or DOWNLOAD and PROC COPY within SAS Connect. Specifically, the Windows, Unix, and digital Unix operating systems will be addressed proc step, proc copy, dataset, proc download, proc upload 4
109 Selecting Unrestricted and Simple Random With Replacement Samples Using Base SAS and PROC SURVEYSELECT David D. Chapman This paper reviews different techniques for selecting unrestricted and simple random without replacement samples using BASE/SAS DATA STEP code, using procedures such as PROC SORT and RANK, and using the new SURVEYSELECT procedure in SAS/STAT. An extremely brief review of random sampling basics is given that includes a discussion fo the UNIFORM random number function and the use of special SAS functions INT, CEIL, and FLOOR to select random samples in the DATA STEP. DATA STEP code for selecting unrestricted random samples is given and explained. DATA STEP code for selecting Bernoulli samples and two different approaches to selecting simple random samples without replacement are presented and discussed. Simpler ways to select simple random samples without replacement using PROC SORT and PROC RANK are also illustrated and examples given. An alternative to selecting a random sample in the DATA STEP is to use PROC SURVEYSELECT in SAS/STAT sample, proc step, random sampling, proc surveyselect, proc sort, proc rank, sample size, data step, dataset, set statement, parameter, sample weight, do loop, sas programming, sas function, unique key 9
110 Simulating Attrition and Visual Models of Type I and Type II Errors Haftan M. Eckholdt Longitudinal studies are plagued by attrition. While statisticians can address these problems, researchers have trouble understanding the impact of attrition. Methods described here are designed to help scientists understand and appreciate the impact of attrition on their hypotheses. Starting with the essential hypotheses, the approach begins by characterizing the sample at each stage of research to date: population of origin, recruitment, baseline, first follow up, etc. [BASE & STAT: PROC FREQ, PROC TABULATE, etc,]. The next step executes 1000's of simulations of attrition through the random as well as systematic deletion of cases [%MACRO]. In the next step, models are run [STAT: PROC GLM, PROC MIXED, etc.] and relevant coefficients are saved [ODS]. Finally, distributions of coefficients (observed, expected, random deletion, and systematic deletion) are compared [GRAPH: PROC GPLOT] sample, type ii error, proc step, cross-sectional data 9
111 So Now You're Using PROC REPORT. Is it Pretty and Automated? Daphne E. Ewing PROC REPORT will display data. That's a given. That it is more powerful than the standard SAS reporting tool PROC PRINT is also becoming common knowledge. But what can PROC REPORT really do? It is certainly more than a glorified PROC PRINT, but it does take some additional work beyond mastering some of the basics of the procedure before it can be used to produce output that can rival that of a serious DATA _NULL_ step. This paper will discuss the use of several customized macros which can work together with some PROC REPORT options, and standard SAS title and footnote statements, to make your PROC REPORT output really shine. The purpose of this paper is to provide some methods, through a progressive series of examples, to enhance the output created when using PROC REPORT. It is assumed that you know how to write a basic PROC REPORT program including COLUMN, DEFINE, COMPUTE, and BREAK portions of the syntax proc report, proc step, macro variable, footnote statement, sample, options statement, macro definition 10
112 So You're Running Out of Sort Work Space... Reducing the Resources Used by PROC SORT Bob Virgile proc sort, proc step, cpu time, dataset, options statement, macro variable 5
113 Some Uses (and Handy Abuses) of PROC TRANSPOSE Ralph W. Leighton proc step, proc transpose, proc print, format statement, calendar year, character variable, missing value, numeric variable, dataset, transposing, variable, raw data, comma., development age, macro loop, paid loss, macro definition, by group processing 10
114 SQL Basics Destiny Corporation (a company) proc sql, order by, proc step, select, where statement, proc sort 5
115 Standards for Electronic Submissions to FDA Kay Obenshain The FDA is moving towards its goal of paperless submissions by 2002. To meet its goal, the agency is defining standards for industry to use when making regulatory submissions in electronic format. Standards for data are being defined on different levels, including content, structure, and format. The SAS regulatory submission, inferential statistics 3
116 SynCoder: A SAS/AF Application for Implementing MedDRA Coding in Clinical Trials Deborah A. Testa,
Russell Holmes,
Daphne Ewing
This paper presents SynCoder, a Version 8.1 SAS/AF application that implements the new MedDRA international medical terminology for coding adverse events in clinical trials. The presentation will be accompanied by a brief demonstration of three of the application's modules: batch coding using a synonyms data set and a data mart of MedDRA hierarchical terms, an efficient search engine for browsing the hierarchies, and on-line coding of terms requiring human decision making. The application demonstrates the superiority of new features (both in the user interface and in the component technology) in SAS/AF software in Version 8.1 over earlier versions data mart, clinical research 3
117 The Dirty Dozen: Twelve Common Programming Mistakes Bob Virgile error message, proc step, input statement, missing value, sas log, if-then-else, proc means, comment statement, proc freq, error, sample 5
118 The Marriage of EDA & Mapping Techniques for the Analysis/Display of Census Data. Dave L. DesJardins Our research shows that Exploratory Data Analysis (EDA) techniques, when married to a mapping format, gives us a quantum leap in our ability to analyze/display Census data. A newly developed software package allows us to "marry" the best features of EDA software (SAS Institute's JMP software and/or Spotfire software) with the best features of a mapping package (ESRI's ArcView software). This paper outlines the basics of this software and the advantages of this marriage for the EDA graph/map based editing, analysis, and display of Census data. In our dynamic, rapidly changing world, Census establishment and demographic surveys can often be challenging to edit. As is common to most data analysis tasks, many of our conventional editin g methods generate fixed-formula printout s which require an analyst to review and correct the fields of records that are thought to be erroneous. There are many limitations of these conventional methods -- even when well- designed data science, bar chart, histogram, outlier 8
119 The New Look of V9 Web Graphics Himesh Patel,
Frank Wimmer
New development underway for SAS/GRAPH ve rsion 9 targets new heights of visual style for SAS Output. The new Style Editor will allow you to easily create stylish presentation graphics. In addition to focusing upon ease of use, new graph rendering technology is being utilized to add sophisticated visual effects to both Java and ActiveX bar and pie charts. This paper discusses the development of these styles and the graphing enhancements being implemented in order to accomplish those new looks proc template, proc step, sas output 4
120 The New User Interface of V9 Graphing Tools: A Usability Case Study Frank Wimmer SAS software has l ong been known to be incredibly powerful. Through user-centered design and usability testing, usability engineers at SAS Institute are working to make that power more accessible than ever. This paper provides a case study of improvements that have been made, and are continuing to be made on an ongoing basis, to a core staple of many SAS products - our data visualization tools data visualization, data science 4
121 The SAS System on New UNIX Platforms Clarke Thacher This paper describes the new UNIX platforms added with Release 8.2 of the SAS System sas base, proc step 3
122 The Study of Different Context on NAEP Math Basket (Short Form): Implementation Using SAS/Base and SAS/Graph Brenda Siok-Hoon Tay-Lim This presentation shows how SAS/BASE and SAS/GRAPH are used to generate the Item/Block/Book Characteristics Curves (ICC, BlockCC, BookCC). For each common item (but presented in different contexts), the ICC differences are summarized in terms of the area between the two separately estimated curves which is calculated as |( | , , ) |main MBp abc p abc d θ θθ θ -∫ . Similarly, the characteristics curve differences for a block can be summarized in term of the area between two separately estimated curves where the Block Characteristics Curve (BlockCC) is obtained as the average of the curves over the items in the block. The BlockCC difference is calculated as ' 1|( | , , ' , ) 1 (| ,, ' , ) | main i i ik i items over block MB i i ik i items over block mT a bb scn mT a bb sc dn θ θ θθ ⋅- ⋅ ∑∫ ∑ probability functions, logistic distribution 5
123 The Time Series Forecasting System Charles B. Hallahan sample, first difference, unit root, dataset, model training, partial autocorrelation, time series analysis 6
124 The Writing for Reading SAS Style Sheet: Tricks, Traps & Tips 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 it's macro language. This paper discusses eements of a style sheet for SAS programmers. The intended audiences are intermediate SAS programmers and beginning macro programmers macro facility, %if-%then-%else, macro definition, macro variable, macro loop 4
125 Top-Down Programming with SAS Macros Edward Heaton Structured, top-down programming techniques are not intuitively obvious in the SAS language, but macros can be used to approximate a top-down structure. This can lead to programs that are more versatile, more robust, and generally easier to develop. This presentation will review a SAS macro that reads elements from a difficult-to-read ASCII text file that is typically used to control the processing for a COBOL job. Along the way, we will look at the program structure and review the engineering decisions that allow the code to be developed in an organized and robust manner. This presentation will demonstrate methods for macro testing and debugging, as well as various features of the SAS Macro Facility macro definition, dataset, macro call, options statement, %if-%then-%else, macro loop, proc step, compress function, missing value, macro variable, txt, proc sql 9
126 Two Quick Tips for PROC REPORT: Making a Line above the Headers and the PAGE Option Chris Moriak Have you ever been asked to make your PROC REPORT tables more "delightful" by adding a line above the headers? Although some solutions advise making an additional title with underscores, such a solution makes small tables look odd. This quick tip demonstrates how adding six simple characters to your COLUMN definition can make both large and small tables look "delightful". Also, have you ever wanted to page break a PROC REPORT table by its columns? Some solutions may suggest adding blank characters to the variables or creating multiple reports. This tip demonstrates how the PAGE option in the DEFINE statement allows one to put columns on separate pages. Using both the PAGE option and the ID option allows one to maintain information on the left side of a report, while changing the columns on the right side of a report. Tip #1: Adding a Line above the Header with Six Characters For this tip, one needs to know how PROC REPORT builds the headers with the COLUMN statement proc report, proc step 2
127 Untangling Correlated Predictors with Principle Components David R. Roberts regression analysis, correlation, loess, sample, predictor variable, proc varreduce 5
128 Use SAS to Maintain and QC your Database Sergey Sian raw data, proc freq 4
129 Using animation to add a time dimension to maps Michael S. Zdeb Maps are an excellent way to present data that have a spatial component. However, when the data being presented vary over time, a simple two-dimensional map ignores an important feature of the data. An animated map that shows a series of two-dimensional maps at successive points in time allows one to add a time dimension to the display of data. Map animati on is illustrated with data that follow the progress of AIDS-related admissions to New York City hospitals from 1982 through 1997. Three-month moving averages of the number of admissions are shown mapped by zip code. A time line is added to the animation with an annotate data set proc step, proc gmap 4
130 Using Enterprise Guide for Querying and Reporting Gail Kramer,
Chris Hemedinger
One of many things that SAS software enables you to do is to deliver the information you have used SAS software to discover. Come and see how SAS allows you to create and generate reports and get them delivered to the right people giving them The Power to Know TM. Enterprise Guide software brings the full power of SAS to business analysts and SAS pr ogrammers in a PC client application via an easy to use point-and-click user interface. This Windows client connects to Ve rsion 8 SAS Syst em servers and provides access any data types supported by the SAS System, uses the execution power of the server to run any SAS processes, and returns professional reports and graphics to your PC. Enterprise Guide also provides you with web deployment and repeatability of your analysis and results. This paper describes the latest features available in Enterprise Guide Release 1.2 in the areas of project management, query, OLAP support, data access and administration sas enterprise guide, proc sql, dataset, format statement, excel, proc step 6
131 Using Proc Report to Build a Table Containing Cumulative Totals and Percent David D. Chapman PROC REPORT is a tool for tabulating and reporting the contents of SAS data sets. PROC REPORT's strength is its ability to create table columns, modify individual cell values, and use information from the different rows of the report. This flexibility allows users to create tables that show cumulative totals and cumulative percent. Cumulative totals are used to report values such as the number of responses year-to-date and the percent of a total for all periods to date. Two PROC REPORT features that allow this are the "COMPUTE" block, and the distinction that PROC REPORT makes between report variables and data variables. This paper discusses how PROC REPORT builds a report, the different kinds of "COMPUTE" blocks and how they function, and what report and data variables are and how they work. The code to produce one and two level tables containing cumulative row totals and percent are shown with explanatory comments. Key word: PROC REPORT, Cumulative total, Cumulative Percent proc report, proc step, data step 4
132 Using Regular Expressions with SAS Brian Conley It is well known that SAS is extremely powerful at processing numeric data, however, anyone who has been faced with processing large amounts of textual data understands that this can be quite a challenge. Using RXPARSE, RXMATCH, Call RXCHANGE, and Call RXSUBSTR will enhance a programmer's ability to manipulate strings and match patterns. This paper will investigate SAS' regular expression (RX) functions and call routines. By presenting several examples, it can be shown how these functions and call routines can be used together to process strings using character classes, pattern abbreviations, special symbols and more 2
133 Using SAS to Read Data Sets with Complicated Layouts Rebecca Goldblatt A crucial challenge faced by programmers is deciding how to read SAS data sets with complicated layouts. This presentation discusses the method that we used to read and merge four patient-level data sets, one for each quarter of the year. Although all the data sets had identical layouts, each one contained six records of varying length and content per patient. We used a variable that indicated the record number to provide SAS with different reading instructions for each record. After SAS had correctly performed the reading, we appended the four data sets together, sorting by patient identifiers and then by record number. The data, however, were ordered according to quarter of the year, and the next challenge was to reorganize the information so that all of a patient's records were physically located together. We created six new data sets, one for each record number. Within each new data set, records were ordered by patient identifiers order by, data science 3
134 Using SAS/CONNECT Software and X Statements to Navigate the Directory Structure of a Remote Server Kevin Payton Delaney,
Peter Landi
proc step, proc contents 2
135 Using SAS/Warehouse Administrator., Enterprise Guide., and Enterprise Reporter. to Manage and Access a Clinical Data Warehouse Theresa J. Kelso Our challenge was to discover the ideal method for integrating our clinical databases in order to facilitate the response to requests for information on clinical trial data, create a standardized data repository for protocol data, define a data extraction procedure with respect to individual protocol data file formats, and reduce the amount of time spent defining and developing customized routines. After a thorough investigation of vendors, products, and services within the data warehousing arena, we narrowed our list of potential solution providers to eight candidates, each of whom seemed capable of addressing our basic requirements for data extraction, transformation, loading, and reporting. From three finalists, we selected the SAS data warehousing solution clinical data, clinical trial, data warehouse, sas enterprise guide, dataset, adverse events, clinical database 3
136 Using Surveys to Understand the Present and Predict the Future Aliza Heching,
Ying Tat Leung
Organizations often conduct surveys to gather information. This information allows the organization to serve its customers more efficiently and to aid in long-term decision-making. We have developed an instrument for using survey responses to analyze current population behavior and to predict future behavior. This instrument is coded using Base SAS, SAS STAT, SAS GRAPH, as well as SAS Macros. More specifically, we have developed the following tools: We generate point and interval estimates of population parameters based upon sample responses. We address methods for improving the robustness of these estimates: we define procedures to identify statistical outliers and develop heuristics to adjust the weights used in the (weighted) analysis. We also develop several methods for measuring the impact of different data points on the estimated parameters to help the user verify the analysis results sample, outlier, regression analysis, estimate, sample size, parameter, random sampling, stratified sampling, trend analysis, box plot, confidence interval 6
137 Using Taylor's Linearization Technique in StEPS to Estimate Variances for Non-Linear Survey Estimators Roger L. Goodwin Estimating variances of non-linear functions involving two or more random variables is a challenging problem in survey sample variance estimation. A common approach to solving this problem is to "linearize" such functions using Taylor series methods, then estimate the variance of the linearized function using (1) a vector of first-order derivatives evaluated at the point estimates and (2) the variance-covariance matrix of all the function variables. This document describes the SAS macro used to implement the Taylor's Linearization Technique for variance estimation in the U.S. Census Bureau's Standard Economic Processing System (StEPS). All StEPS input parameters and calculated estimates are stored in SAS data sets using standard file formats. There are several implementation considerations associated with using these standard files, which are discussed in detail in the paper covariance, proc iml, proc calis, proc step, do loop, macro variable, macro definition, macro loop 10
138 Using the Magical Keyword 'INTO:' in PROC SQL Thiru Satchi "INTO:" host-variable in PROC SQL is a powerful tool. It simplifies pr ogramming code while minimizing the risk of typographical errors. SQL INTO: creates one or more macro variables, based on the results of a SELECT statement. This macro variable(s) reflects a list of values that can then be used to manipulate data in both DATA and PROC steps. The usefulness of SQL INTO: will be demonstrated by analyzing a large medical claims database. Keywords: INTO:, host-variable, macro, SQL proc sql, macro put, macro variable, proc step, insurance claims, sample 7
139 Validating And Updating Your Data Using SAS Formats Peter R. Welbrock 7
140 Version 8 - What we have Learned and How our Users are deploying it. Paul Kent As the "Senior Director of Research & Development for Base SAS Software", I get to enjoy many conversations with SAS customers. To produce this paper I: surveyed some of my contacts listened in to problems reported to Technical Support eavesdropped on t he SAS-L community and mingled with folks during the mixer sessions at SUGI26 and Seugi19 proc step, proc report, proc print, ods html, sas base, macro variable, macro definition, macro function, macro facility, %if-%then-%else 4
141 Version 8 ODS (Output Delivery System) Destiny Corporation (a company) This presentation 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. Basic HTML Publishing The most basic form is brute force HTML generation using the traditional DATA STEP. This tends to be the most flexible, but the most time consuming and requires complete knowledge of how HTML works. FILE and PUT statements are used extensively. Data Set Publishing with DS2HTM SAS offers a macro that allows one to take a SAS data file and present it in an HTML form. SAS Output Publishing with OUT2HTM Any procedure's output can be captures and published with the OUT2HTM macro. Tabulate Publishing with TAB2HTM proc step, proc tabulate 8
142 Web Graphs - Making Static Graphs Look Dynamic George P. Sharrard Each month a standard set of graphs needs to be generated and posted to your company's web site. Using SAS/GRAPH and the gif driver this is easily accomplished. Since this was so easy to do, new graphs are soon requested. Then the requirement changes to make the graphs by product categories. Before you know it, your SAS code to produce 10 graphs each month is now producing 100s of graphs. The marketing department complains that they go to the web site but can never find the graph they are looking for. There are too many graphs. Can't you organize them? SAS Version 8 to the rescue! Using new drivers in SAS/GRAPH, ODS, and some simple DATA STEP techniques you can post your graphs in a way that presents an organized "Guided Tour" of the data. SAS/GRAPH, Base SAS and simple SAS/MACRO concepts will be presented &variable, vertical bar chart 7
143 What User Defined Formats Are Available? H. Ian Whitlock The answer depends on the value for the option, FMTSEARCH and the form ats contained in the catalogs listed. A general program is offered to produce the report. A macro is used to standardize the names given by the FMTSEARCH option. The result is then passed to an SQL step using DICTIONARY.CATALOGS to produce the macro variable, %if-%then-%else, proc sql, macro definition 2
144 What We Really Need is a %BY Statement - V2 Ray Pass proc step, do loop, macro variable, macro function 2
145 WHAT'S IN A NAME Michael C. Ross This paper describes a technique used to convert names and addresses from all upper case to mixed upper and lower case suitable for mailing 2
146 Wholly MACRO! A handful of techniques to simplify your SAS code and make it recyclable Christianna S. Williams Those ampersands and percent symbols can be intimidating to those new to the SAS Macro Language! However, users whose data manipulation or statistical tasks are ever repetitive or who want their SAS programs to be more flexible and data driven can benefit from introducing some Macro techniques into their code. The purpose of this paper is to provide a straightforward introduction to SAS Macro Language through a series of concrete examples. In each case I will explain the task, show how it could be achieved without Macros, and then demonstrate a Macro technique that will simplify the program and/or make it more widely applicable. The simplest examples will include the use of the %LET statement and automatic macro variables, while the more complex tasks will demonstrate techniques such as %DO loops and the use of CALL SYMPUT to communicate between the DATA STEP and the Macro facility macro variable, call symput, macro loop, proc step, do loop, keyword parameter, %macro parameters, macro definition, macro facility, proc tabulate, automatic macro variable, &variable, macro call, macro function, sas function, macro quoting function, macro parameter, macro put, %if-%then-%else 10
147 Wireless Information Delivery ... Anywhere, Anytime. Scott Vodicka With the advent of the Internet and the increasing mobility of its users, it has become necessary to allow immediate access to data and reports from non-desktop (wireless) devices such as Personal Digital Assistants and phones. In this paper we will show how SAS technology will keep your users connected to their business information anywhere and at anytime output delivery system, dataset 7

Back to Conf go 2002 go 2000

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.