HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

NESUG 2000 Papers - Index

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

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 A Case Study in the Use of XML to Integrate SAS and Third-Party Applications Michael C. Palmer,
Cecilia A. Hale
This paper discusses the use of XML to integrate base SAS with third-party applications. Specifically, it discusses how to increase the quality of statistical tables and reduce the programming associated with them by using XML as a means of two-way communication between SAS and commercial publishing software. To use XML this way, an analyst works in the publishing software to create two documents: a reusable table shell and a map to a table content database. Table style information and content information are segregated. Style is exclusively in the shell document, exploiting the publishing software's fully featured environment, and content is in the map document, exploiting SAS' rich analysis environment. Each of these documents is saved as XML. A stable suite of SAS programs reads, interprets, and implements the pair of XML documents, building styled, composed tables in XML. The tables are returned to the publishing software for rendering to paper or electronic formats such as PDF proc tabulate, xml 4
2 A Coding History for Clinical Data Phyllis Wolf The need to track the coding of clinical data (adverse event, medications) inspired the development of a coding history system. Because the coding element of the data review system does not maintain an audit trail, it has proven a tedious task for data managers to keep track of when raw clinical terms are coded and when an equivalence (synonym) is used. The system consists of two macros and a calling program. The first macro maintains a permanent SAS data set that contains, among other variables, the raw clinical term (the verbatim), the dictionary term to which it is mapped, and the date that term first appeared in the raw data. The system also keeps track of whether the verbatim is in the coding dictionary or if the term had to be added through an equivalence dictionary. It maintains this history even if the verbatim is later deleted from the raw data. The second macro gives many choices of viewing the coding history data set raw data, proc sql, proc step, macro variable, adverse events, %if-%then-%else 2
3 A Double Transpose H. Ian Whitlock Many SAS programmers avoid PROC TRANSPOSE in favor of DATA STEP array manipulation. Are you one? I will discuss a short problem that can serve as a tutorial giving insight into how to use PROC TRANSPOSE. Suppose Q1 - Q10 represent the answers to 10 multiple choice questions with 5 possible responses (1, 2, ..., 5). How can you obtain the following frequency report? 12345 proc transpose, proc step, sas programmer, proc freq 2
4 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 sas batch, proc sql 7
5 A New Method Of Look-Up For A Large Medmart System Edward Aronov A method to speed-up the look-up processes for a very large Medmart system has been developed. The nominal variable, where statement, proc sql, macro variable 3
6 A Pragmatic Intent-to-Treat Analysis Using SAS Patricia R. Houck,
Sati Mazumdar,
Kenneth S. Liu,
Charles F. Reynolds III
Intent-to-treat analyses are warranted in clinical trials, which usually contain right-censored data due to treatment failures or dropouts. An explanatory analysis, easily achieved with PROC MIXED, assumes data missing at random, which is not the case in clinical trials since the dropouts are often associated with the treatment assignments (Little and Rubin, 1987). A pragmatic analysis (Hogan and Laird, 1996) is a mixture model utilizing information from the explanatory part of the analysis and information after censoring. This is done by fitting a piecewise random effects model with both "on-" and "off-treatment" slopes which can be accomplished in SAS by combining the parameters from the mixed effects model using PROC MIXED with the proportion of censoring obtained from PROC LIFETEST. To illustrate, this technique was applied on simulated data from Table 2 in Hogan and Laird (1996) to calculate final IQ ratio values. Bootstrapped standard errors are used to make inferences proc mixed, proc calis, proc step, clinical trial, sample, estimate, bootstrap 5
7 A SAS Data Dictionary for Achieving Analysis Dataset Compliance to FDA Guidance on Providing Submissions in Electronic Format Thomas Guinter The guidance documents published by CDER and CBER, in January 1999 and November 1999, respectively, have had far- reaching impact on the way clinical trials data is managed by industry and delivered to the FDA. This presentation will provide an overview of an automated approach, using a Data Dictionary, batch programs, Macros and an AF/FSP application for achieving compliance with the guidance documents for structure of analysis datasets data dictionary, key, adam dataset, sas batch, proc step, batch job, proc sql 4
8 A SAS Macro for Simple Random Sampling Chang Jiang The methodology of simple random sampling is widely used for selecting a sample from a population to develop estimates of the values of population characteristics. This paper presents a SAS macro that makes the implementation of simple random sampling easy and fast sample, random sampling, sample size, integer, macro definition 3
9 A SAS.... Software Toolkit for Reverse Engineering Large Projects Perry Watts,
John R. Gerlach
Consistent project maintenance is difficult to sustain in an age of corporate mergers and spin-offs. Suppose, for example, your company inherits a sparsely documented project lacking in formal design and method- ology. To meet company standards, management decides that a completely new version of the application is re- quired, beginning with the reverse engineering of over 30,000 lines of code. This paper describes a set of tools developed to address the special problems of reverse engineering a large SAS application. Included in the toolkit are programs that provide a cross-reference of all variables in a given SAS library and then determine which variables from the library are actually referenced in the source code. Addi- tional tools modularize tightly coupled code and print out intermediate data sets. Special tools for examining the interrelationship among the 210 formats in the project are also described macro variable, macro loop, data step, symbol table, proc freq, macro definition, macro function, %if-%then-%else 8
10 A SAS/IntrNet Java Program for Delivering Graphical Information of Remotely Monitored Processes. Wing K. Chan,
David C. Steven
We demonstrate a SAS/ IntrNet Java program that generates real- time, continuously updated graphs via SAS/CONNECT and the JTunnel feature. This tool can deliver graphical information via the web for a variety of remote monitoring or process control applications. For example, a manager may display a real-time control chart of any selected manufacturing process on his networked office (or home!) computer. We use an example originally conceived as a proposed application at Penn State University for delivering continuously updated analytic chemistry graphs from remote monitoring equipment located inside freshwater and marine fish environments at the University's Hetzel Union Building http, sample 5
11 A Submission Development Environment to Support SAS Programming and Related Activities During Clinical Data Analysis Barry R. Cohen Pharmaceutical companies conduct many activities during the statistical analysis of their clinical data. This is one part in their larger process of collecting, managing, analyzing, and presenting all this clinical data (safety and efficacy). Many companies now provide considerable system support for the early part of this larger process, (i.e., the data collection and management), and for the later part when the New Drug Application (NDA) document is published and presented to a regulatory agency in electronic form. But much less has been done to support the work involved in the statistical analysis of the data using SAS Software, particularly Base SAS and the Macro Language. I discuss automated, integrated support for the statistical data analysis in this paper. I call this support a Submission Development Environment. An automated, integrated environment for this work is surely a challenge, but it offers much potential payoff if it can be achieved data science, macro facility, clinical data, dataset, macro parameter, sas base, sas output, sas programmer, statistical programmer, sas programming, proc sql 6
12 Ad hoc Validation of Multivariate Regression Using PROC FACTOR with BY Groups Susan B. Garavaglia,
Asha Sharma,
Stephen Thompson
Factor Analysis is a popular methodology in the social sciences for reducing a large number of variables to a smaller group of understandable factors or concepts. Often the raw variables are abstract or arcane, but the resulting factors are more convincing to non-technical decision makers. Generally, factor analysis is applied to an entire population or sample and the factors may or may not be used in further multivariate analysis, such as regression or clustering. We demonstrate the use of separate factor analysis by outcome group using both the actual outcomes and the model estimates to evaluate a model's ability to capture the "intuitive profile" of each group. Examples from managed care risk management and business marketing response will be shown. The technical discussion of factor analysis will be treated as a review, emphasizing using different rotations, selecting the number of factors to include, and evaluating the significance of the factors factor analysis, proc princomp, regression analysis, factor loading, r-squared, neural network, promax rotation, varimax rotation, logistic regression, sample, binary variable, logistic distribution, correlation, proc factor, proc step, data cleaning 10
13 Advanced Macro Processing Destiny Corporation (a company) macro variable, call symput, symbol table, data step, proc sql, sas log, proc step, call execute 7
14 Advanced SQL Processing Destiny Corporation (a company) group by, proc sql 5
15 Adventures in Building Web Applications: A Tutorial on Techniques for Real-World Applications Jason Gordon The authors recently completed their first web-based application, a Dashboard reporting system for the Card Services a GE Capital Company. Along the way, they discovered how SAS/INTRNET software operates differently than they originally thought. They also developed some tools and not so obvious strategies to build and maintain a web site with well over a hundred pages. This presentation is an attempt to share those experiences. Among the topics covered: maintaining a test site using automated st ring replacement automating web site updates through block replacement validating user input without Javascript or Java logging what users do without hit counters or server logs using PUT statements to _webout -- not what you thought returning SAS/GRAPH output to a web browser The presentation will feature some on -line demonstrations to illustrate how these techniques are used in real-world applications macro variable, dataset 10
16 All the Data That Fits, We Print Janet E. Stuelpner,
Elizabeth Kaptsanov
How many times do we want to print a sample of data from a whole SAS database? Typically, one runs PROC CONTENTS or a PROC SQL followed by multiple PROC PRINTs to determine the names of all data sets and print some or all of their observations. This method is tedious, time consuming and error prone. This paper explores several ways to capture the member names stored in a SAS catalog and then, using the SAS Macro Language, create a program to print sample observations from each data set proc step, proc print, macro variable, sample, proc contents, catalog, &variable, title statement, libname statement, proc sql, macro definition 7
17 An Automated Method to Create a Descriptive Index For a Directory of SAS Programs Gary Cunningham The methods presented in this paper can be used to significantly aid with a programming documentation effort by automating the process of creating a descriptive index for a directory of SAS programs. As referred to in this paper, a descriptive index is simply a listing of the names of the SAS programs in a directory and their corresponding descriptions. Using a pipe to communicate between the SAS System and Windows NT, base SAS code can be used to create a list of all SAS programs in a directory, get each program's description as written in the program's standard header, and output an index that lists each program's name and its accompanying description. This paper describes a SAS macro that uses the methods above to automate the creation of this index. The SAS macro was developed to run under Windows NT, in Release 6.12 of the SAS System for Windows. This paper is intended for users with an intermediate level of experience with the SAS language macro definition, filename statement, macro variable 2
18 Applying Survival Analysis Techniques to Loan Terminations for HUD's Reverse Mortgage Insurance Program - HECM Ming H. Chow policy year, survival analysis, binary variable, hazard function, confidence interval, probability distribution, binomial distribution, regression analysis 8
19 Arrays: In and Out and All About Marge Scerbo This tutorial will present the basics of array statements and show easy examples of usage, leading to a final and more complicated process made efficient through the use of this statement. Arrays are SAS DATA STEP statements that allow clever programmers to do a great deal of work with little code. Iterative inputting of text and outputting of records are two tasks which can utilize the power of arrays to their fullest. Calculations of multiple values are also a simple task for this statement do loop, missing value, array, data step, if-then-else, numeric variable 7
20 Avoiding Mayhem in the New Millennium: Working with Missing Data JoAnn R. Matthews Anyone who has ever worked with data is familiar with the adage "data are messy". And whether you have collected the data yourself, or inherit a dataset, there is almost always missing data. This paper will discuss the issue of missing data and the techniques for identifying, processing, and manipulating missing data. Topics to be discussed will include how SAS processes data in the program data vector, the best missing value, proc step, retain, numeric variable, error message, proc freq, list input, sum, column input, formatted input, raw data, data step, input statement, proc print, proc univariate, automatic variable, dataset, if-then-else, character variable, update statement, by group processing, proc means, options statement 10
21 Basic Macro Processing Destiny Corporation (a company) macro variable, macro facility, proc step, macro call, &variable, macro definition, proc print, symbol table, macro parameter, %macro parameters, automatic macro variable, keyword parameter, missing value, macro put, macro quoting function 6
22 Basic SQL Processing Destiny Corporation (a company) proc sql, order by, proc step, select, where statement 5
23 Batch Processing with SAS: Beyond Running Programs Overnight Lisa Sanbonmatsu The usefulness of batch processing goes well beyond being able to submit several SAS programs all at once. Batch processing allows you to automate steps involving several different software applications. This streamlines the process, documents it, and reduces the chance of errors. This paper discusses the use of DOS batch files, the SAS X command, and the SAS Call System routine. Tips for avoiding quoting problems are provided batch processing, raw data, txt 2
24 Batch SAS as Shell Script:Command Line and Prompted Variable/Parameter Assignment David C. Steven The power of SAS software can be implemented at the command line on Unix and Linux systems to generate complicated analytic results much in the same way that Perl or shell scripts are used to generate simple reports. SAS, executed in batch (i.e., from a command line prompt), can accept command line arguments or interactively prompt for input such as a parameter or parameters, sub-grouping variables or values, etc. Combining these features with SAS/GRAPH components enables one to cause a custom chart or plot of any complexity to appear on the screen merely by typing a quick command at the Unix prompt stop, sas batch, proc printto, proc step, macro variable, dataset 2
25 Bulletproofing Your SAS Results Vanessa C. Hayden We've all been thrown by questions like these: "Why doesn't this report foot with the one you gave me before?" and "Can you just quickly duplicate this old analysis but make one change?" In a fast-paced environment, it can be difficult to meet changing business needs but also produce internally consistent macro variable, call symput, datepart, sample size, sample, put statement, sas log, macro put, data step, proc print, proc step, proc sql 5
26 Choosing SAS Operators to Select a Range of Values of a Variable Chang Jiang SAS System provides a number of operators for selecting a range of values of a variable. But the values selected by a particular operator from a numerical variable may be quite different from the values chosen if the variable is defined as a character. This paper shows how to choose and use SAS operators properly in order to select a desired range of number-like values when the variable is defined as character proc step, character variable, proc sql 2
27 Clean-up, Comments and Code - Making it Maintainable Clay Martin,
Lori Martin
It was exciting writing that new program: getting the code to run without errors and getting the results for which you've worked so hard. Time to move on to the next task - or is it? What about those warning messages and those strange notes in the log? What about documenting and commenting the program? Can someone other than you easily understand what the code is doing? I'll do it later, you say. Will you remember it later? Will you be around later? Granted, time spent on making code maintainable is not exciting. However, it is valuable because the code is easier to: fix when there are problems upgrade to support new requirements enhance to handle new requests turn over to someone else. This paper will focus on making your code more maintainable. It is aimed at an audience of SAS programmers, applications developers and consultants. Topics covered include: How to clean up messages in the log. The ins and outs of comments missing value, put statement, if-then-else, macro variable, options statement, numeric variable, error message, proc step 7
28 Clinical Trial Laboratory Data Management using the SAS System Marianne Hack In terms of volume, for many clinical trials laboratory data comprises a very large portion of all data collected. Add to that the fact that laboratory data is inherently complex, and the management of the data acquisition (electronic and/or data entry), cleaning (synchronization of databases), and reporting (unit conversions, character to numeric conversions, result flagging, etc.) processes can be overwhelming. This paper discusses an approach to building and using an arsenal of specialized SAS program modules in order to standardize the various processes involved in managing and reporting clinical laboratory data sample, laboratory data, clinical database, baseline, clinical trial, dataset 5
29 Comparing 2 SAS Data Sets: An Alternative to Using PROC COMPARE Kevin King While PROC COMPARE is a useful tool, it can also be intimidating. There are dozens of options to be aware of and the output has several sections. If you were interested in doing a simple comparison, wouldn't it be great if there was a simple tool to do it? Well there is! This paper presents a set of two macros that will get the job done. Using a simple MERGE statement and the ability of the macro facility to access both base SAS and macro functions, the algorithm compares two SAS data sets and presents the differences in an organized fashion. This can be especially useful when the same data set is changing over time, such as cumulative transfers of data occurring several times during the life of a project macro variable, proc step, macro quoting function, macro function, %if-%then-%else 2
30 Complex Arrays Made Simple Mary A. McDonald Many novice SAS programmers avoid arrays because they think that they are difficult. The truth is that they make work easier. This tutorial is a simple introduction to working with multidimensional and nested arrays. Topics covered are: common applications, loading constants, referencing, defining and processing conditional do loop, drop statement 4
31 Confirmatory and Exploratory Data Analyses Using PROC GENMOD: Factors Associated with Red Light Running Crashes Li wan Chen Recent studies have shown that more than 200,000 red light running crashes occur annually in the United States. It can be hypothesized that the majority of these accidents result from "driver error," whether intentional or inadvertent. However, the purpose of this research is the possible contribution of the geometric characteristics of intersections to RLR crash risk -- such factors as entering or cross-street traffic volumes and intersection width. The focus of this current paper is the statistical modeling strategy chosen from many possible strategies to answer the questions using data from the Federal Highway Administration's the Highway Safety Information System (HSIS). The HSIS contains multi- year, multi-state data on accidents, roadways, and traffic volumes. Poisson and Negative Binomial regression models in PROC GENMOD were utilized to test the hypotheses regression analysis, poisson distribution, proc genmod, poisson regression, proc step, likelihood function, confidence interval, predictor variable, binomial distribution 7
32 CONNECTing with SAS Version 8: Virtually Transparent to the User 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 configuration 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 mainframe. 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 easy to convert current version 6 applications to version 8, using Destiny course materials as a starting point libname statement, proc copy, proc step 5
33 Create Custom Numeric Formats with the Proc Format Picture Statement Vincent L. Timbers SAS provides a variety of numeric formats for displaying numeric variables. However, there may be times when the formats provided do not meet your needs. In many of these situations the PROC FORMAT picture statement may be used to create a format which specifies a template for displaying numeric variables as required. This paper provides several examples of creating custom numeric formats with the PROC FORMAT picture statement proc format, proc step, numeric variable 2
34 Creating a Consolidated Report from Several SAS Outputs Using DATA NULL and PUT Statements Anne Horney,
Gail F. Kirk
We often find it necessary to combine output values from several procedures into one table or page of a report. When we need a p-value from one procedure, and means and standard errors from another and frequencies from a third procedure, the separate pieces of information must be brought together in one DATA STEP before using PUT statements to print the table. The problem of how to get the data/output/information ready to print is particularly difficult for inexperienced programmers. We will show examples using several different methods such as PROC FREQ, PROC MEANS, PROC UNIVARIATE and DATA steps. In addition to creating PUT tables these methods can also be used to create delimited ASCII files that can be merged into word processing or spreadsheet packages proc step, anova, sample 7
35 Creating a Home Page on the Internet: An Introduction to Web Page Development JoAnn R. Matthews At the present time, there are more than 200 local or special interest SAS user groups in the U.S. alone, and this number continues to grow.The Web provides an excellent opportunity for local and special interest groups to reach potential members to publicize local user group activities and increase membership. This paper will discuss the basic principles of HTML (HyperText Markup Language) - the foundation of any web document - as well as developing dynamic web pages with Java, and Java applets. Creating documents using the Output Delivery System (ODS) with the latest versions of SAS software (Versions 7 and 8) will also be discussed service provider, txt 10
36 Creating E-Mail Messages Using SAS and Perl Script Cyril Ravindra,
John Owusu Djamboe
This paper describes how to efficiently automate generation of email messages to group members using SAS and perl scripts. Messages are sent to recipients via the SMTP gateway protocol The crontab utility in unix initiates the process by invoking a perl script at specific times of the day. The script runs SAS programs that create several perl scripts corresponding to the number of recipients in the input file. These scripts are transmitted as email messages. Using perl script makes the process platform independent. The Continuous Measurements Office of the U.S Census Bureau, a branch of the Demographic Surveys Division (DSD) is responsible for the American Community Survey. Data is collected by various methods including mail response, telephone interviews and personal interviews. Because of the time constraints of data gathering , the various tasks involved in the process are managed by a control system macro variable, production run 2
37 Creating Meta-Data to Solve a Problem John R. Gerlach,
Dolores A. Casinelli
Assume you have a data file such that a record represents a collection of rates juxtaposed with their respective categories, as follows: [item]<category><rate> Under more typical circumstances, the file would be structured such that the rates would be located in their appropriate field denoting the categories, which would become the variable identifiers. In this case, however, the value of the category denotes the appropriate variable that would contain the respective rate. Moreover, the categories are nominal; in fact, neither ordered nor sequential, hence, array processing is not readily apparent. Even worse, not all categories are represented for a given record. So, then, how do you read the data properly without using a myriad collection of IF statements accompanied by lots of hard-coded values? Most discussion about meta-data concerns the access and use of the dynamic aspects of a SAS session; such as: the WORK library, user-define formats, and macro variables dataset, macro variable, dictionary tables, proc sql 5
38 Data Mining of Market Knowledge in The Pharmaceutical Industry John J. Cohen,
C. Olivia Parr Rud
The pharmaceutical industry is well known for using SAS to perform quantitative analysis for clinical research. Lately, however, competitive pressures have created opportunities in the marketing departments to use SAS for Data Mining. Applications such as sales force planning and direct marketing to doctors and consumers are employing many new SAS tools and techniques. This paper will provide an pharmaceutical industry, data mining, customer segmentation 4
39 Data Quality Control in Multi-State, Multi-year, Multi-type Databases: A Method for Examining Year-to-Year Percentage Changes Li wan Chen The Highway Safety Information System (HSIS) is a multi-state, multi-year, and multi-type database that contains accident, roadway inventory, and traffic volume data from eight states. HSIS contains approximately a million observations of information per state per year. The ultimate use of these data is in data analyses across states, file types, and years. However, from a quality-control standpoint, one of the challenges is the monitoring of data changes in each of the hundreds of variables each year to detect possible errors of state-induced coding changes or data entry errors leading to inconsistent data across years. Since computer monitoring is mandated by the database size, the effective use of the SAS macro facility could save significant programming time for repetitive tasks. In addition, it is easy to modify and maintain the program standard deviation, outlier, macro variable, proc step, macro facility, quality control 8
40 Data Structure Determines Programming Effort H. Ian Whitlock Data are often stored in a rather inconvenient form. Thus a lot of report writing and data manipulation programs contain large chunks of code used to rebuild the data in the correct structure, followed by relatively simple report writing or data maintenance code. Typical problems will be identified and discussed in terms of examples found while helping students, analyzing my colleagues' code, and answering questions on SAS-L. Often the programmer does not have the control needed to correct these problems, so efficient coding methods (typically involving macro code) to work around problems that cannot be corrected will also be discussed. In this manner, I hope to make the programmer aware of: 1. How data storage influences the difficulty of the programming task 2. How to judge the cost in programming time for poor data structures 3. How to best work around these problems when they cannot be corrected if-then-else, dataset, missing value, macro loop, macro definition, proc step 9
41 Demystifying PROC COMPARE : A Programming Approach Stanley E. Fogleman Having the ability to compare two files is one of the more basic tools in any programmer's repertoire. Unfortunately, the available documentation on the COMPARE procedure is confusing and misleading. In contrast to other SAS procedures, using the defaults leads to frustration and worse. The defaults assume: Every like-named SAS variable on the base data set should be compared to the same variable on the comparison data set. The base and comparison data sets are sorted in the same order. You are not interested in observations on the base data set that do not appear on the comparison data set, or vice-versa. There is no need for a "delta file", or a file of just the changes between old and new files This paper will be suitable for both the SAS beginner and the advanced user, since both can benefit from knowing the limitations of PROC COMPARE in Version 6 proc compare, proc step 2
42 Developing an Open Client in Visual Basic Daniel Jahn Base SAS Integration Technologies opens the door for applications written in a variety of languages to access the power of SAS. Integration Technologies allows Visual Basic programmers to easily combine industry standard tools along with SAS to quickly create powerful applications. This paper presents an introduction to the tools, techniques, and strategies that VB programmers can employ in their own applications sas output, sample, sas base, txt 5
43 Dictionary Files H. Ian Whitlock The SQL dictionary files provide an excellent tool for writing general-purpose utility tools and maintaining control of the data in a project. An example is presented in the form of a short macro to answer the question: Find all SAS data sets in library LIB having records with variable DISPOSITION = 99. The problem breaks down into two parts 1. What data sets have the variable DISPOSITION on them? 2. Of those data sets, do any records have proc sql, macro variable, proc step 2
44 Exploring Oracle.... Data Dictionary, a htmSQL.... Utility Hsiwei Yu,
Wen-Hsiung Lee
SAS/ACCESS to Oracle and htmSQL, part of SAS/INTRNET, allow us to develop a utility for querying Oracle's data dictionary on Internet and obtain information such as column attributes in a table or simple statistics on a column. This utility can be modified to query DB2 , Sybase , or ODBC -compliant database proc sql, data dictionary, sample 4
45 Format Challenges with PROC REPORT Lisa M. Schneider PROC REPORT is a very useful tool in the production of tables, particularly if the data to be presented in the column contain the same kind of information for all rows in the table. A more challenging situation arises when different types of data (i.e., discrete and continuous variables) are used in the same column to represent dissimilar information that often needs to be differentially displayed. If the report also requires the use of a classification variable to define columns of the report, more complications can occur. The use of COMPUTE statements and an ACROSS variable to handle these conditions is explored. COMPUTE statements conditionally assign different formats to the various data presented in the same column based on the values of variables used to distinguish the rows in the table. An ACROSS variable is used to define the classification structure for the columns proc report, proc step 10
46 Fuzzy htmSQL for SAS Myles E. Powers Impatient and unforgiving, many Internet users demand that Web pages respond intelligently. The SAS Web Tool, htmSQL, offers a method of producing dynamic Web content. This paper shares some ideas for serving HTML forms that incorporate htmSQL to provide a more intelligent and maintainable Web site. SQL statements passed to a SAS/SHARE through htmSQL can be designed to forgive phonetic spellings or be parsed for matching specific columns of a reference table. Updating tables as needed to implement menu selection changes can ease maintenance. With htmSQL in the background, typo prone or spelling impaired users can have a more productive experience on your Web site proc sql, lookup 4
47 Generating Item Responses for Balance-Incomplete-Block (BIB) Design Using the Generalized Partial Credit Model (GPCM) Brenda Siok-Hoon Tay-Lim This presentation shows how SAS/BASE is used to generate item responses for the Balance-Incomplete- Block design that has been used in the National Assessment of Educational Progress (NAEP). The item responses are generated based on the Generalized Partial Credit Model (GPCM) developed by Muraki (1992). The item parameters for the model were obtained from the 1998 NAEP writing assessment. For each of the combination of conditions, SAS/BASE was used to generate item response data using the defined item parameters and randomly generated abilities. Given the item and ability parameters, response probabilities were first calculated using the GPMC. The probabilities were then translated into discrete item responses by comparing the probabilities with random numbers drawn from a uniform distribution [0,1]. The process was repeated with different random numbers for each item and for all examinees macro variable, if-then-else, sample 7
48 Generating Simple and Complex Random Samples Using the RANUNI Function Rebecca Goldblatt We present two examples, for the beginner and for the intermediate user, to illustrate how the RANUNI function generates random stratified samples from large data sets. In the first example, we generate a test sample for a regression analysis and two smaller samples for validation of the regression model. First, we construct a test sample by randomly selecting patient-level records stratified by health care facility. Next, we remove these selected records from the original data set. Then we divide the original data set in half to create two random validation samples. In the second example, we demonstrate how to construct subsamples of various sizes from a data set of health care facilities. The goal is to generate random samples stratified by three different variables: institutional group, health care facility, and patient type. First we define the features of the strata by creating a new variable whose value is determined by the values of the stratification variables sample, regression analysis, data cleaning, ranuni, sample size, random sampling, proc step 3
49 Getting Started with PROC LOGISTIC Andrew H. Karp logistic distribution, proc logistic, predictor variable, logistic regression, proc step, regression analysis, response variable, odds ratio, estimate, dataset, proc genmod, confidence interval, null hypothesis, proc reg 5
50 Globals|Access|Query: Tips and Tricks for using the Access Query Window Dianne Louise Rhodes This paper introduces the user to the online SAS/ACCESS Query functions. Using SAS/ACCESS, you can build complex SQL and reports, with only a little knowledge of SQL and PROC REPORT. This is a useful tool for checking and debugging programs that link multiple tables, enabling the user to generate, modify, and save PROC SQL and PROC REPORT statements interactively. The output is delivered in pages, allowing user to scroll through the pages or go to a certain page. The queries can take advantage of the prompt feature, which allows you to run the query for a value entered in a dialog box. Queries and reports can be stored and re- executed, or put into a frame or EIS application where statement, proc sql, proc report, proc step 3
51 Housekeeping Revisited: Managing the Application Environment Ralph W. Leighton proc step, calendar year, macro variable, format statement, data mart, dataset, variable list, macro put, macro definition 10
52 How to Be a Bayesian in SAS: Model Selection Uncertainty in PROC LOGISTIC and PROC GENMOD Ernest S. Shtatland The SAS system is known not to support any more or less developed Bayesian method. At the same time a Bayesian framework is the ideal environment for resolving the problem of model selection uncertainty (which is important for getting proper inference based on the model), though at a price of very complex and time- consuming algorithms. In this presentation, which is a continuation of our SUGI'2000 paper, the possibility of avoiding the complexities of fully developed Bayesian feature selection, likelihood function, proc step, regression analysis, stepwise selection, logistic distribution, predictor variable, confidence interval, proc logistic, prior probability, sample, sample size, akaike information criterion, monte carlo 9
53 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, proc print, output delivery system, title statement, dataset, ods html, proc template, excel, raw data 9
54 Implementing An E-intelligence Information System In An Extremely Active Web Environment Gina Iosue Businesses are turning to e-intelligence solutions to harness the promise of the internet to revolutionize the way businesses and their customers interact. The internet has created an entirely new sphere of customer contact for business. This creates new challenges for the capture and transformation of the data from web logs into meaningful and strategic information. The information garnered from click-stream analysis will empower business decision makers to understand their customers, and respond to them in a much more directed and intelligent manner. Qualex Consulting Services, Inc. has developed an e-intelligence solution for one of the most popular web sites in the United States. With over 35 million lines of data collected daily from customers accessing their web site, the challenge was to collect, store, analyze, and report the data in a consistent and timely manner. These challenges proved insurmountable to other vendor solutions, but not to SAS and Qualex Consulting Service flat file, data mining 4
55 In-House SAS User's Guides: Site-Specific Information and Conversion Guides Bruce F. Gilsen do over, ftp 6
56 Indexing and Compressing SAS Data Sets: How, Why, and Why Not Andrew H. Karp character variable, dataset, where statement, numeric variable, length statement, proc step, if-then-else 5
57 Indexing: My New Best Friend for Table Lookup Warren E. Stinson lookup, sysrc 2
58 Intelligently Launching Microsoft EXCEL from SAS, using SCL functions ported to Base SAS Christopher A. Roper The SAS Companion for the Microsoft Windows Environment illustrates one technique for opening Microsoft EXCEL from within SAS using DDE. This technique has several disadvantages. First, it does not check whether EXCEL is already open, it can unintentionally open multiple EXCEL sessions and this can be problematic. Second, it does not know with certainty when it has opened EXCEL, it relies on the SLEEP function to pause processing until a set amount of time has passed. Hopefully, the amount of time is sufficient for EXCEL to open successfully, but there is no guarantee. Finally, this set amount of time must be predetermined and sufficient for the worst case scenario (i.e. the slowest machine on which the code might possibly be run). This means the pause is always set higher than the minimum amount of time required for EXCEL to open, does not take advantage of the best resources available, and causes the end user to wait unnecessarily excel, conditional do loop 2
59 Is 'STUP_ID' Really "Stupid"? Sergey Sian create table, data step 5
60 Let's Not Forget E-Mail Jack N. Shoemaker isp, sas programmer 6
61 Longitudinal Data Techniques: Looking Across Observations Ronald P. Cody proc step, proc freq, lag function, by group processing, set statement, longitudinal data, retain, proc means 6
62 Macro Makes PROC MEANS Flexible Kimberly D. Yarbrough Have you ever had to aggregate a large data set (> 2 million records) by several variables? Did you have to vary the levels of aggregation based on a variables' value in the source data set? Have you tried PROC MEANS/SUMMARY with a CLASS statement and realized that you had more than 100 levels of aggregates and had to figure out the _TYPE_ values you actually need in your output data set? Or run out of memory performing this type of tabulation? This macro code allows you to predefine levels using %LET statements, output only the levels that you need and is flexible enough to output to more than 1 data set macro variable, proc step, nominal variable, do loop 2
63 Merge Processing - Alternative Table Lookup Techniques Destiny Corporation (a company) This tutorial is designed to show you several techniques available for pulling together multiple sets of data for the purpose of combining or comparing their values proc sql, data step, macro variable, lookup, proc step, by group processing, array, merge statement, pdv, modify statement, proc format, data merging, format statement 8
64 Methods for the Analysis of Clustered Ordinal Response Data Robert J. Gallop,
J. Richard Landis,
Thomas R. Ten Have
Considerable progress in methodology development for the analysis of ordinal response data has been made in recent years. Furthermore, developers of SAS have continued to expand their capabilities so that practitioners can now implement many of these methods within standard algorithms. This paper will review statistical main effect, treatment effect, estimate, correlation, degrees of freedom, proc step, sample, logistic distribution, regression analysis 7
65 Migrate to ORACLE? I Need My SAS Software! Dianne Louise Rhodes Recently we have heard SAS users asking, "My shop is moving to Oracle|Sybase|Informix. They tell me I can't use SAS anymore. They tell me I don't need SAS anymore. I don't know SQL and I don't want to write SQL pass through. I need my SAS! What can I do?" This paper introduces you to some basic relational database management systems (RDBMS) concepts. It discusses some design considerations used to construct RDBMS. And it answers the questions presented above. Why you still need SAS. How to use SAS with an RDBMS. Easy ways to write SQL and make the connection to Oracle; create SAS datasets from Oracle; and join SAS data and Oracle data proc sql, normalization, relational database, dataset, key, create table, oracle, proc step, sample 5
66 Moving a Large SAS System Into an MVS Production Environment The Trials and Tribulations Bernard Gardocki,
Stephen J. Rhoades
It is not the role, or responsibility of production integration personnel to review and test each program transitioning to the production environment. Therefore, the developer's implementation of systematically computed control totals becomes an essential requirement to successfully implement programs into the production environment. So how do you do move a system into production? We will cover the process of passing parameters into SAS streams, verifying record counts from tape files and disk files. Providing reports of record counts and reports on why a job abended and what should be done. A number of different techniques are used to check on input files including dictionary files and CALL EXECUTE, the code and the reasons they were used will also be covered. Definition of a large system. A database of 1,600,000 cases. Over one hundred job streams, many run multiple times per cycle. Files with up to 260 variables. Over 500 different output files record count, control total, sysrc, set statement, dataset, macro variable, macro loop, macro definition, %if-%then-%else 6
67 Moving from Macro Variables to Macros Lisa Sanbonmatsu The macro facility is one of the most powerful features of base SAS. Macros and macro variables allow users to write more flexible code, perform repetitive tasks, pass information between data or PROC steps, conditionally execute SAS code, and generate SAS statements based on what is in the data. Although beginning SAS users sometimes shy away from macros, getting started with macros is actually easier than it looks. This paper is designed to help the beginning user step into macros. The paper starts with built-in and user-defined macro variables, illustrating how users can add flexibility to their code with the simple addition of a few %LET statements and ampersands. Passing information between data steps using CALL SYMPUT is also discussed. Next the paper demonstrates how to actually create a macro. The paper breaks the process down into steps and incorporates debugging into the coding process to help beginners avoid the frustrations of trying to figure out why a macro does not work macro variable, macro facility 9
68 New Technology, New Opportunities: XML and SAS Automate Statistical Tables Michael C. Palmer,
Cecilia A. Hale
This paper discusses how to reduce the programming burden and increase the quality of statistical tables by adding the new software technology of XML to the familiar SAS-based table creation methods prevalent in the pharmaceutical industry today. Statistical tables in regulatory submissions are excellent candidates for highly automated creation, revision, and reuse. Three factors contribute to this. One, table content originates and is maintained in computers so it's readily available to an automated system. Two, the row, the column, and the cell are all the building blocks needed to construct a table, an understanding of table structure that is formalized in the non-proprietary, platform-independent OASIS table model standard. Three, the benefits of automating table creation, revision, and reuse can be substantial since tables make up a sizable portion of a submission. SAS and publishing software can be taught to converse using XML and the OASIS table model proc tabulate, pharmaceutical industry, regulatory submission 6
69 New Ways to Update Old Formats Janet E. Stuelpner All you want to do is update an old format with a few new pieces of information. You wonder whether you have to type in all of the old information to change just one or two values. There are several ways to attack this problem. This paper will identify the choices that you have and which are the easiest to use proc format, proc step, dataset 2
70 NPV Modeling for Direct Mail Insurance C. Olivia Parr Rud Acquisition modeling for direct mail insurance has the unique challenge of targeting responsive customers while minimizing risk. In addition, factors such as the probability of a paid premium and product profitability all effect the net present value of a prospect. This presentation will detail the steps to develop a net present value, which can used to optimize the selection of prospects. Topics covered include how to structure and prepare data for analysis to model construction and validation. Additional directions for overlaying a risk segmentation model and product profitability are described. A final discussion will cover criteria for final name selection based on company objectives sample, logistic distribution, logistic regression, data cleaning, product profitability, missing value, regression analysis, interval variable, response variable, predictor variable, univariate analysis, proc step, proc logistic, standard deviation, gain chart 7
71 Numeric Data Displays Utilizing Special Characters in PROC REPORT Kerry Deem PROC REPORT is a very powerful reporting tool. When generating tables that summarize data, it is sometimes necessary to add percentages (as (97%)) and/or ranges (as 30,54) as part of the data display. Displaying special characters such as parentheses and commas in PROC REPORT, while challenging, can be accomplished in several ways. One method using picture formats must be used with care. The picture must be set up properly or errors may occur. In addition, negative numbers must be handled as a special case. Another method is to create a character variable that includes these special characters. This paper describes a proc report, character variable, proc step 2
72 ODS and Browser Interaction Solutions Steven H. Feder While SAS ODS readily produces HTML files, some difficulties remain in using the output. Browser interaction in some cases formats default output so that it is difficult to read. Back- end browser manipulation offers solutions, but redirecting the output through PROC REPORT still works better for some applications proc step, label statement, proc report, proc means, ods html, proc template 3
73 ODS, YES! Odious, NO! - An Introduction to the SAS Output Delivery System Lara K. Bryant,
Sally M. Muller,
Ray Pass
ODS (originally pronounced 'odious', but now pronounced 'ya gotta love it') is the new SAS System facility, starting with Version 7, that you can use to format your PROC and DATA output in ways just recently only dreamed about. ODS offers greatly enhanced flexibility and ease of use for both new SAS users and experienced SAS users new to ODS. This paper will discuss the basics of ODS, emphasizing methods of converting standard PROC output to the following "destinations": - Listing - default (the only way to get PROC output up to now) - HTML - HyperText Markup Language (probably the best tool available for information exchange today) - Output - SAS data sets (no more PROC PRINTTO!) - Printer - available experimentally in V7, and for production in V8. Produces both Postscript and PCL output on all hosts, and on PC hosts additionally produces output for any printer supported by the host operating system proc step, output delivery system, file statement, proc univariate, ods output, output, proc reg, run, ods html, dataset, proc freq, proc print, sas log, anova, sas output 10
74 Ordinal Outcomes with the Continuation Ratio Model Melissa J. McGowan Ordinal regression is a relatively new statistical method developed for analyzing ranked outcomes. In the past, ranked scales have often been analyzed without making full use of the ordinality of the data, or alternatively, by assigning arbitrary numerical scores to the ranks. While ordinal regression models are now available to make full use of ranked data, they are not used widely. This poster will illustrate the application of the Continuation Ratio model for an ordinal outcome representing stage of retention. The Continuation Ratio model is appropriate when the ordered categories represent a progression through stages, so those individuals must pass through each lower stage before they go on to higher stages regression analysis, proc genmod, ordinal logistic regression, proc step, logistic regression, logistic distribution 4
75 OS/390 SAS Version 8 WEB GIFS and HTML Using ODS & SAS/GRAPH Software and MXG Neal Musitano Jr. 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. This paper utilizes that performance data. The MXG Performance Database, i.e., daily, weekly or monthly contains millions of performance variable values all in SAS readable format. The intent of this paper is not to explain MXG software, which is SAS source code, but to display some user examples of OS/390 computer performance graphs and reports as WEB GIFS and HTML output utilizing SAS Version 8 and the MXG Computer Performance Database as input. The WEB GIFS displayed were produced on an OS/390 mainframe using 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 bar chart, ods html, proc step 11
76 Painless Graphics: The Click, Drag and Drop Approach of Graph-N-Go Jeff Cartier Graph-N-Go is an intuitive, easy-to-use interactive application that is integrated into Version 8 SAS Display Manager System as part of SAS/GRAPH software. You can use GNG to build and customize a wide variety of interactive charts and plots based on data from any SAS Data Set or MDDB, without any knowledge of SAS/GRAPH software. You can print your work or export it to various types of files including HTML or SAS source files. Such source files contain SAS/GRAPH procedural code that can be submitted independent of Graph-N-Go to create equivalent charts and plots bar chart, catalog entry 3
77 Partially Transforming Hierarchical Data Sets for Sequential Processing Using Arrays Richard L. Downs Jr.,
Pura A. Perez
This paper explains a simple framework for applying traditional sequential processes (reformat, edits, imputation, etc.) to a hierarchical group of SAS data sets. Using a series of macros, the user defines the data set hierarchy or a subset of that hierarchy. The macros transform all data sets under the top level of the hierarchy, creating top-level views of these data sets. Inside the process DATA STEP(s) another series of macros build the hierarchy-related portions of the DATA statement, all array statements referencing variables from transformed data sets, and the merge and output statements that reference the hierarchy data sets. After the processing DATA STEP(s) a final macro reverts the transformed data to its original format and updates the original data set(s) data step, merge statement, unique key, missing value, proc sql, proc step 8
78 Point & Click Forecasting with the Time Series Forecasting System Charles B. Hallahan first difference, residual, dataset, predictor variable, feature selection, time series analysis, unit root, sample, partial autocorrelation, proc esm 9
79 Power Indexing: A Guide to Using Indexes Effectively in Nashville Releases Diane Olson In Version 6 of the SAS System software, there were performance problems with some index features. This paper addresses how those problems have been resolved in the Nashville releases (Version 7 and later releases). It also supplies guidelines to help you decide when indexes will benefit your application and increase the performance of your SAS programs. Questions answered in this paper include: q What are indexes? q How do I create an index? q What are the benefits of an index and when does the SAS System use indexes to access data? q What additional resources do indexes use? q What are the index improvements in Nashville releases? Ø Centiles Ø More User Control Ø APPEND Procedure Ø Expanded WHERE Optimization proc sql, proc step 5
80 PROC MEANSTM: More than just your average procedure Peter R. Welbrock PROC MEANS and its close relative PROC proc step, class variable, proc means, output, where statement, by group processing, missing value, dataset, proc format, format statement, proc sort 10
81 PROC REPORT - Land of the Missing OBS Column Ray Pass proc report, proc step, proc print 2
82 Program to Standardize and Combine Single Month and Multiple Month Health Care Insurance Records Julie Burton,
Yadong Zhang
In the medical insurance industry, major programs are funded by the federal government. The electronic files received from the government agencies can demand substantial processing to obtain updated member level data to determine values for a specified month. Each file may contain both current month records as well as retroactive adjustments to be applied to previous months. Member level processing may require the standardization and combination of records applying to a SINGLE month, and retroactive adjustment records applying across MULTIPLE months. This program shows a method for exploding the MULTIPLE month record to make it comparable to the SINGLE month record. There are two further complications in processing these files. - One is that the payment field on the MULTIPLE month record is for all months, necessitating division by the number of months to arrive at a monthly pay amount do loop, if-then-else 6
83 Programming Data Displays Using SAS Software: Meeting Regulatory Requirements for Quality Michael A. Walega In the interest of consumer safety, the pharmaceutical industry is one of the most heavily regulated environments that SAS Software is used in. Historically, regulations have focused on assuring high quality clinical, laboratory and manufacturing processes. With increased use of computer systems within the industry, regulatory guidelines have also been developed for software applications that record, store, modify and retrieve clinical trials data. Regulatory agencies now require that computerized systems follow a systems development life cycle (SDLC) process to assure high quality software applications that correctly record and manage clinical trials data. The SDLC process incorporates the following basic elements: a set of defined user requirements, a design document, a validation master plan, a validation test plan and report, an installation plan and processes that define change (version) control data cleaning, clinical trial, proc step, clinical data, adverse events, audit trail, serious adverse event, quality control, proc print, proc genmod, proc sql 11
84 Reading and Writing Data from Microsoft Excel/Word Using DDE Destiny Corporation (a company) excel, data step, dataset 6
85 Reporting One Record at a Time (aka "DATA _NULL_") Frank Senk Ever wonder why anyone would want to use anything but SAS procs? For one, they are easier to use, understand and have ample documentation support. Secondly, SAS provides excellent help services. Thirdly, they are not dependent upon programming "tricks". Despite all the above reasons, I have found data null techniques to offer some advantages found nowhere else: Complete control of the output page Flexibility in reporting character and numeric data * Design of macros to simplify reporting No doubt other users of data null have other reasons. For the remainder of this presentation, we will discuss one proc step, macro variable, proc freq, proc sort 5
86 Risk-Adjustment of Cesarean Section Rates as Part of Clinical Quality Improvement: Two Applications of PROC LOGISTIC Guy Pascale The author utilizes hospital in-patient data to model the probability of cesarean section. The controls include maternal age, multiple births, previous c-section, and other clinical factors related to the mother and the baby. The controls also include a dummy variable control for a particular OB/GYN group. The OB/GYN group in question had a higher probability of delivery by c-section than other practices controlling for a myriad of clinical factors. The predicted probabilities from the model were outputted and compared to actual rates for further illustration binary variable, logistic distribution, proc step 3
87 Running SAS Applications on the Web Destiny Corporation (a company) sample 4
88 SAS Extract Macro to Create a Comma Delimited File for Microsoft Excel97 Import Aldona A. Rajecki,
Eric E. Kahle
In an MVS/OS environment, this macro was designed to extract SAS variables to a comma delimited file without changing the original code. The SQL query and macro are appended to existing JCL. The extracted data may be directed to a pre-allocated or a new file-created as a physical sequential or a partitioned data set-in order to transfer it from the mainframe to a PC as an ASCII file proc sql, create table, proc step 2
89 SAS Macros are the Cure for Quality Control Pains Gary M. McQuown Performing Quality Control (QC) on survey data is an essential and challenging, but often under appreciated task. Differences such as survey length, skip patterns, variable ranges, and questionnaire length add to the difficulty of the task. Fortunately, prudent use of macros can reduce the chore while improving accuracy. This paper presents the macros and techniques used to perform quality control on the 1998 Survey of Small Business Finances data for the Board of Governors of the Federal Reserve. The macros and routines described are used to perform various evaluations and cleaning procedures including the following: 1) Determine validity of each response. 2) Accommodate exceptions and missing values. 3) Differentiate between legitimate skips, conditional skips, and inappropriate skips. 4) Report errors in an appropriate format. The macros and routines presented may be useful for anyone who wishes to improve upon their QC procedures or performs survey related work %if-%then-%else, macro variable, missing value, if-then-else, quality control, macro quoting function, character variable, macro definition, response variable, macro loop 6
90 SAS Online Data Archive for Population Studies David Barro,
Leslie Benson,
Steve Maczuga,
Cindy Mitchell,
Jeanne M. Spicer
Our data archive serves up a wide selection of social science data in every flavor from EBCDIC tape to .dbf files downloaded from the web. Most of our data was kept as "flat" files so researchers could read the data into their analytical software of choice. This prevented us from having to keep a permanent SAS system file, SPSS version, Stata version, etc of the same data set. We stocked basic SAS code to input the raw data into a SAS data set. Labels and formats were generally not included unless the collecting agency supplied them. Users were on their own if they wanted the data in anything other than SAS. This resulted in confused users as well as inefficient and/or error prone data. In the end the users often created data files which violated two of the cardinal sins of programming - wasting CPU time AND disk space. The solution: Using skills & resources already at hand we've mixed-up a concoction called the SodaPop system proc step, dataset, raw data, libname statement, proc format, sas library, data step, format statement, proc sql 6
91 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
92 SAS Programming and HEDIS: An Introductory Overview Christopher Plummer The Health Plan Employer Data and Information Set, or HEDIS , a product of the National Committee for Quality Assurance (NCQA), "is a set of standardized performance measures designed to ensure that purchasers and consumers have the information they need to reliably compare the performance of managed health care plans. The performance measures in HEDIS are related to many significant public health issues such as cancer, heart disease, smoking, asthma and diabetes." (NCQA, proc step, proc sql, proc download, by group processing 7
93 SAS Software Formats: Going Beneath the Surface Roger Staum Through this tutorial, I hope to acquaint the experienced SAS programmer with advanced and not-so-well-known features of creating and using formats and informats. Most of these features are supported in Version 6 of the SAS System, although a few are new to Version 8 1. They apply to base SAS software on all supported platforms. Although I emphasize concepts, I also include syntax, examples, and applications proc format, proc step, input statement, char., sysdate9, proc tabulate, put statement, sas programmer, user-defined format, macro variable 7
94 SAS Software Macros - You're Only Limited by Your Imagination Peter Parker SAS Macros have many uses besides passing parameter values through programs. You can craft elaborate automated queries, write more user-friendly applications, and create maintainable code. I am going to demonstrate four advanced uses for SAS Macros: 1. User Interface- Macro Windows Using simple window forms, you can create queries to produce user-customized macro variable, macro definition, proc sort, sample, macro facility, proc step, data step 8
95 SAS User Support and the Intranet: Web Pages, In-House Documentation, and Sample Library Bruce F. Gilsen,
Scott Hoenig
sample, txt 10
96 SASHELP: A Backstage Pass Timothy D. Kelly The great thing about SAS is that there are multiple ways to get the final result. Whether you're coding edit checks, creating tables or listings, or you just need a work around, using SAS gives you many options. Each user has their own style and method when it comes to programming. What makes a good programmer is knowing more than one way to get the final result. The ability to understand and know where SAS stores information and how it can be obtained can be very beneficial. The SASHELP library, in particular, stores information that is very useful no matter what you are programming. This paper will describe several data types available within the SASHELP library and show how the information can be utilized. This will prove to be a stepping-stone to a volume of information available at your fingertips sashelp, proc step 2
97 Saving Paper and Making it Pretty: A SAS Macro for Simplifying and Enhancing Preliminary Analysis of Continuous Data Benjamin E. Leiby As a first step in the analysis of experimental data, statisticians are often interested in comparing two or more groups of subjects with respect to one or more continuous measurements. Statisticians typically assess the normality of a variable's distribution, check for the existence of outliers, and compare the groups with respect to the mean or median of the continuous variable using t-tests or ANOVA and their non-parametric equivalents. Tools for accomplishing these goals are available in the UNIVARIATE, T-TEST, ANOVA, and NPAR1WAY procedures, however the output from these procedures can stretch over many pages and can contain information that is not necessary in exploratory analyses. In addition, standard line- printer plots are often unsatisfactory for presentation to clinical investigators proc step, histogram, box plot, proc univariate, macro call, anova, qq plot, sample, interval variable, response variable, proc means, class variable, proc boxplot 7
98 Saving Time with Variable Labels Brian Conley This compact 10-line macro creates a macro variable which contains the original variable's label. The newly generated macro variable has the same name as the original variable. For example, the variable "startdt" has the label "Week 24 Start Date". After the macro is run, the macro variable "&startdt" is set to "Week 24 Start Date" title statement, data validation rules, macro variable, macro definition 2
99 Saving Trees: Managing the Edit Check Process Electronically Timothy D. Kelly The whole process of cleaning clinical trials data can be very time consuming and frustrating. A computer can be better, more accurate, and serve as "eyes" for cleaning data. Without a validated procedure for storing and retrieving the edit check failures, a lot of energy is spent reviewing old and known issues multiple times. Due to the iterative nature of data cleaning, managing this process electronically can save time and trees. Organizing this process programmatically will enable data management to better use their time on the current issues, link the failures to queries, and generate reports on outstanding issues. This paper will focus on a technique used for managing the edit check failure information and the many incentives it provides. Edit Check Document The Edit Check process begins with the creation of the Edit Check document. This document drives the edit check programming process data validation rules, data governance 3
100 SCL Methods for Maintaining and Using Passwords Clinton S. Rickards Maintaining password security to an application is a key component of a total security package. This paper discusses a number of SCL methods developed for creating, maintaining, and verifying passwords. It will also discuss some of the business and non-programming issues surrounding the use of passwords sysrc, dataset 9
101 Seeking, Mapping, and Fuzzy Merging Data Structures in a Networked Environment Haftan M. Eckholdt The challenges of long term, multi-site projects include that acquisition, management, and analysis of data (files) distributed across many workstations from many points in time. Finding, reading and reconciling these files often involves data loss rates beyond tolerance for tracking and analysis in longitudinal / repeated measurement projects. SAS MACRO and the SAS X command can be used like a robot to search drives and directories across networks in order to seek and map file structures. The product of file mapping can then be used to read eligible files and fuzzy merge them using various spatio-temporal criteria to produce final (wide or deep) data structures linked with highest-to-lowest probability of match call symput, macro loop, dataset, sample, proc step, macro definition 8
102 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 12
103 Source Code Revision Control Systems and Auto-Documenting Headers for SAS Programs on a UNIX or PC Multiuser Environment Terek J. Peterson,
Max Cherny
This paper discusses two free products available on UNIX and PC environments called SCCS (Source Code Control System) and RCS (Revision Control System). When used in a multi-user environment, these systems give programmers a tool to enforce change control, create versions of programs, document changes to programs, create backups during reporting efforts, and automatically update vital information directly within a SAS program. These systems help to create an audit trail for programs as required by the FDA for a drug trial proc print, proc step, clinical trial 5
104 SQL Summary Functions, Unions, and Aliases to Define a Risk Cohort and Risk Variables from a Record-based Study Janet Wikoff,
Lori Maiwald
The Bureau has been conducting a number of record-based studies to identify a risk cohort over the past six years. One of the biggest challenges faced was that the existing data sources for demographic and behavioral information did not always have the risk information of interest readily available. The inability to directly collect the variables of interest, particularly risk-related behaviors, necessitated the creation of composite variables by using comparable information available at the study sites. This paper focuses on the data challenges and the techniques that were used to solve them. Data challenges included: the linkage of tables, the identification of a specific subgroup and the creation of informative variables proc sql, create table, group by, proc freq, proc step, where statement, order by, inner join, unique key, proc sort 9
105 Streamline the Process - A Real Life Example Yadong Zhang This paper presents a real life example on the evolution of a monthly report application. The application uses SAS/SQL pass through and Base SAS to develop report and email the final product to the end user. The application also archives the log and report automatically proc sql, dataset 2
106 Summarizing Census 2000 Race Check Box Combinations Adeline J. Wilcox proc freq, proc step 2
107 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 7/8 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 7 and 8 over earlier versions data mart, clinical research 3
108 Templates for Comprehensive Analysis of Logically Dichotomous Survey Questions Donald T. Gantz This paper provides an approach for graphically reporting responses to survey questions that are logically dichotomous in structure. These include any questions whose responses break down into positive, negative and neutral categories, with possibly multiple response levels in each category. Particular examples focused on in the paper are 1 to 5 and 1 to 4 (i.e., Likert scale) questions. Report templates include comparison of response patterns across multiple questions as well as response patterns to a single question across the levels of multiple demographic variables. The variety of report options comprehensively addresses the needs of analysis and reporting. The templates are implemented via customized programs that write presentation quality graphic reports that print directly from the SAS output window or copy/paste into MS WORD. The core of these programs consists of two complex code files that are flexible and fully bulletproofed against all possible data anomalies macro variable, proc step, dataset, proc freq, data step, macro facility, if-then-else, do loop, proc format, proc sort, structured data, macro definition 10
109 Ten Things You Should Know About PROC FORMAT Jack N. Shoemaker The SAS system shares many features with other programming languages and reporting packages. The programming logic found in the ubiquitous DATA STEP provides the mechanisms for assignment, iteration, and logical branching which rest at the core of any procedural language. Analytic data displays, like the humble frequency cross- tabulation produced by various PROC FREQ, may be replicated with varying degrees of success using any number of other products. PROC FORMAT is another matter. Somewhat like an enumerated data type; somewhat like a normalized and indexed reference table; it really has no exact analog in these other products and packages. There's a lot you can do with PROC FORMAT. And, there's a lot to know about PROC FORMAT. The aim of this paper is to provide insight on at least ten of those things which you should know proc format, user-defined format, proc step, work library, char., proc catalog 5
110 The Identification of Dental Underutilization Patterns for the Mentally Retarded: Univariate and Multivariate Approaches Guy Pascale Using claims data from a Medicaid HMO, the author illustrates the presence of underutilization patterns for the mentally retarded with regards to dental services. For this particular population rates vary by age, county of residence, and assigned dental provider. The author concludes by outlining community based interventions to increase utilization and hopefully better the dental health of the mentally retarded proc step, proc logistic 3
111 The INPUT Statement: Where It's @ Ronald P. Cody input statement, infile statement, sas log, trailing @, data step, dataset, variable list, character variable, proc print, error message, proc step, missing value, date variable, numeric variable 10
112 The Power of PROC FORMAT Jonas V. Bilenas The FORMAT procedure in SAS is a very powerful and productive tool. Yet many beginning progra m- mers rarely make use of them. The FORMAT pr o- cedure provides a convenient way to do a table lookup in SAS. User-generated SAS Formats can be used to assign descriptive labels to data vales, create new variables and find unexpected values. PROC FORMAT can also be used to generate data extracts and to merge data sets. This paper will provide an introductory look at PROC FORMAT for the beginning user and provide sample code (ver 6.12) that will illustrate the power of PROC FORMAT in a number of applications proc format, proc step, format statement, proc freq, dataset, flat file 5
113 Think Outside the Box: Analysis of Categorical Data Margaret Ann Goetz Analysis of categorical data has many applications in pharmaceutical research. Outcomes such as presence or absence of a tumor, or a positive or negative reaction to a particular medication, may be considered an endpoint of interest in clinical trials. While many researchers are familiar with the 2x2 contingency table, there are other analyses to consider when presenting results based on a discrete outcome. This paper will present a brief overview of some of the statistical distributions commonly encountered in these analyses. Discussion of analysis strategies will include an proc freq, exact test, fisher exact test, proc step, clinical trial, binomial distribution, hypergeometric distribution, sample, degrees of freedom, sample size, numeric functions, ordinal variable, poisson distribution, anova, correlation, response variable, likelihood function 5
114 Three Ways to Skin a Cat: Many to Many Merges Mary A. McDonald A comparison of three ways to do many-to- many merges: 1) multiple data steps, 2) flattening and expanding one of the files using arrays and proc sql, proc step 2
115 Unlock MDDB File Using MDDB_M Class Hsiwei Yu,
Rashmi Lal
By using methods in the MDDB_M class, we can retrieve data from a Multi-Dimensional Database (MDDB ) file to save as a SAS dataset for generating custom reports. This paper discusses the need for reading, or unlocking, MDDB files into SAS datasets, and ways to accomplish this task dataset, data validation rules 5
116 Using %WINDOW to Gather User Criteria Michael A. Mace %WINDOW provides an elegant means to gather user criteria for customized or ad hoc reports. Some of the benefits are: only Base SAS is needed (no SAS/AF ), there is only one program to write and maintain, and the end-user, mainframe or PC, never has to edit any code. Several examples will demonstrate gathering single and multiple choices per parameter and conditionally gathering criteria macro variable, macro facility, %if-%then-%else, macro definition 5
117 Using a Fuzzy Merge to Combine Customer Performance Information Across Accounts Helen-Jean Talbott One of our primary goals for credit policy is to establish criteria which select applicants that have the highest probability of repaying their loans to our company. These criteria rely on models developed using information from loan applications (such as income and homeownership) and from our experience with them as customers (whether they paid as agreed). One of the first steps in the model development process involves sampling relevant data and classifying the accounts based on performance (payment history). Customers frequently renew and refinance loans within the sample period and it is important to track the performance of these customers from one loan to the next. Matching the old loan with the subsequent loan becomes difficult because the closing of one loan and the opening of the next loan can occur several days apart and the customer may have additional loans open with the company sample, order by 3
118 Using Batch MVS SAS.... To Send Email Via A UNIX.... Email Server Stephen M. Englert Frequently, there are customers, internal or external to a business, that require timely email notification regarding the successful completion of certain important MVS jobs. Or, perhaps they wish to receive via email the various reports generated by these jobs. In any case, MVS is not inherently email-friendly, and, more often than not, programmers must download reports to a PC, set up a list of email recipients, scribble a quick explanatory note in the body of the email, attach the saved reports documents, and finally, press SEND. This works fine for one-off, ad hoc jobs proc step, sample, proc freq, cdisc 5
119 Using Indexes to Perform Table Look-up Sandra Lynn Aker automatic variable, proc step, lookup 4
120 Using PROC DATASETS for Efficient SAS Processing Ken Friedman sas library, dataset, proc step 2
121 Using PROC SQL to Selectively Collapse Cells for Weighting Process Ann Von Holle This paper demonstrates PROC SQL code that collapses variable values according to certain criteria while maintaining the original structure of the data set. The code helped solve a problem merging the altered data set, with some collapsed values, back with the original data set. Collapsed categories and summed values were necessary to create new post-stratification weights for counties from the Behavioral Risk Factor Survey (BRFSS). The criterion, applied to a data set of summed values over three variables, was that the summed count equal no less than 30 per row. If the row did not meet the criterion then collapsing resulted: the row was combined over adjacent values and a new sum was produced within this new merged category. However, collapsing the data changed the variable values into broader categories making it impossible to merge with the originating data set containing more specific values, as was needed proc sql, group by, proc step 2
122 Using SAS and DDE to Execute VBA Macros in Microsoft Excel Christopher A. Roper Visual Basic for Applications (VBA) is the programming language Microsoft uses for all their desktop products, including Microsoft EXCEL. VBA allows programmatic control for virtually all the functionality of EXCEL. Because of the popularity of EXCEL as an end-user tool and the power and flexibility of the SAS System to deliver information, integration of these two resources is inevitable. One of the most popular and powerful protocols for integrating SAS and EXCEL is Dynamic Data Exchange (DDE). However, SAS can not send VBA commands to EXCEL using DDE. This paper will present a technique for circumventing this limitation. A VBA macro can be recorded in an EXCEL workbook, and then that macro can be executed by a SAS application using DDE and a command from the EXCEL 4.0 macro language excel, xls 2
123 Using Style Sheets to Format SAS Output Web Page Layout Shi-Tao Yeh SAS Web Publishing Tools are SAS macros that enable users to convert data files or output files into HTML format and display it on Web browsers. A style sheet is a set of rules that format the web page layout. This paper discusses SAS Formatters, and how to implement style sheets to format SAS output to a web page. SAS Formatting Tools version 1.1 does not support style sheets. In addition, a SAS macro is provided in this paper for users using SAS software without style sheets support to be able to implement style sheets for a web publishing task. The SAS product utilized in this paper is SAS BASE , with SAS Formatters installed on a Unix platform sample, sas output, macro definition, dataset, macro call, proc step 5
124 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 proc step, proc tabulate 8
125 Visualizing Longitudinal Ordinal Data Using Data Mosaics Matthew T. Downs Data mosaics, which plot ordinal outcome variables over time at the subject level, are a simple yet effective method of summarizing longitudinal changes in outcomes across subject. Each row (or column) of the mosaic summarizes the data for an individual, while each column (or row) represents the data collected at a particular time point across study subjects. Accordingly, each "tile" in the mosaic presents the outcome variable for a subject at a time point using gradations of color to represent the level of the outcome variable. Using an annotate DATA STEP after normalizing the data, programmers can create data mosaics to supplement or entirely replace data listings that show patient outcomes over time proc step, data step, proc gplot, numeric variable, proc format, response variable 4
126 What We Really Need is a %BY Statement - V2 Ray Pass proc step, macro variable, do loop, macro function, macro definition 2
127 When Rounding the Result of a Random Number Generator Is Wrong Adeline J. Wilcox proc freq, ranuni, proc step 2
128 Working with SAS Date and Time Functions Andrew H. Karp sysdate9, datetime variable, date variable, datepart, dataset, time variable, numeric variable, raw data, proc freq, proc step, datetime, time series analysis, if-then-else, mdy, time, subsetting if 7
129 You Can Do THAT with SAS Software? Using the socket access method to unite SAS with the Internet David L. Ward The addition of the socket access method to version 6.11 of the SAS System provided the Base, Macro, and SCL languages with a simple way to use the standard TCP/IP network protocol. TCP/IP is the protocol that is used to access virtually all types of network servers, like FTP, Telnet, Web, etc. In the years since version 6.11 was released, the Internet has grown exponentially and become a vital part of virtually all technology-based businesses. Using the Socket Access Method, the SAS system can interact with the servers that make up the Internet, as well as become a server itself. This paper will present simple implementations of the following TCP/IP protocols and discuss practical uses for each: HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol), POP3 (Post Office Protocol), FTP (File Transfer Protocol), Telnet, and SAS to SAS client/server processing data step, sas log, ftp, http, macro variable, %if-%then-%else 7
130 You CAN Get There from Here (and Back Again): Adding Hot-link Drill-down Capabilities to ODS HTML Output Ray Pass The SAS Output Delivery System (ODS) can be used to create HTML pages for publishing on the Internet or an Intranet. Right out of the box (and the box is FREE too! - with Base SAS), ODS can be used to create either one page per procedure output, or a collection of HTML pages per procedure. ODS does provide within-procedure HTML navigability, but there is no wholesale provision provided for inter-procedure output linking By using simple SAS MACRO processing combined with the manipulation of TITLE statements, basic data set variable values and values of variables used as CLASS variables in TABULATE procedures, you can create whole systems of hot-linked pages with almost full drill-down capabilities ods html, sas output, output delivery system, proc step, title statement, proc tabulate, macro variable, create table, proc sort 11
131 You Could Look It Up: An Introduction to SASHELP Dictionary Views Michael L. Davis Ever wonder what titles were already set in a batch SAS session? Need a list of the members in a library so your macro can automatically hack at each one? Curious as to how many observations are in that data set without running a procedure or DATA STEP? Want to see what macro variables already exist? Anytime that one has a question about what is going on in their SAS session, they can answer it the same way that SAS itself does the task... they can look it up in the SASHELP dictionary views. This presentation is an introduction to all those views automatically created by the SAS System and found in the SASHELP libref and prefixed with a "V". The dictionary views track items and their attributes for features such as catalogs, data set variables (columns), external files, indices, macro variables, data set members, titles, portable system options, and of course, views. The focus of the presentation is to illustrate how the dictionary views can be used in common situations dictionary tables, proc sql, macro variable, proc step, where statement, catalog entry, sample, call symput, create view, relational database, create table, order by, options statement, macro definition, sas programmer, excel 10

Back to Conf go 2001 go 1999

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.