PNWSUG 2007 Papers - Index
33 papers. Source: PNWSUG (Pacific Northwest SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | "FS-What?" A New Use for an Old SAS Component | Kim Truett | Before AF/Frame and WebAF, before GUI meant pretty and colorful, and before Windows took over the world, SAS had FSEDIT. This line-based "GUI" view of a SAS database has clever organization behind it and is quick to setup and efficient to use. FSEDIT is much less used now, except in legacy systems, and this is unfortunate, because its simplicity and database driven design allows for very quick set-up and is very useful for some simple problem solving. One use is for adding codes to a database. While this can be done 'blindly' using merges or SQL for exact matches, many terms need to be manually reviewed and the 'best code' selected. This paper utilizes a database of Adverse Events that needs codes. FSEDIT is used to display each event, then either look-up, or add in, coding information from a second database, just by typing in the first few letters of a proposed coding term or code and hitting return | clinical data, length statement | 6 | |
| 2 | 10 SAS Coding Techniques I Hate | Paul D. Hamilton | SAS Software software was designed from its inception to be easy to use and forgiving of poor or uninformed choices. Unlike other software of its era (like PL/1, upon which SAS software was based and was mostly written in) SAS was never a strongly typed language. One does not have to declare a variable in great detail before using it; in fact, the SAS DATA STEP goes to great lengths to guess what data structure will be appropriate to the coder's needs. In actual practice, the DATA STEP compiler tends to guess rather accurately. The talented developers at SAS Institute have had many years to hone and refine their craft, and the foundation upon which it is based is a sound one. However, this does not mean that those who consider themselves (and whose managers consider) as professional programmers should have a indifferent attitude about how they write and format SAS code. In very many cases, code tends to outlive it's intended duration; how many people coding in the 1960's and 1970's could ever imagine that their programs would survive long enough to cause the Y2K uproar? |
proc step, work library, job security, sas log, dataset | 6 | |
| 3 | A "SAS Programmer's" Guide to SAS Enterprise Guide | Marje Fecht, Rupinder Dhillon |
You have been programming in SAS for a while….. You hav e been told "we are moving to Enterprise Guide" and removing Display Manager". You say …… I can program everything just fine myself, thank - you! OR What am I supposed to do with all these windows? This presentation will demonstrate how SAS programmers can use SAS Enterprise Guide as their primary interface to the SAS system while maintaining the flexibility of writing their own customized code. We will look at how to navigate the views and menus how SAS Enterprise Guide can be used as your primary SAS Editor * how you can leverage the more complex built-in capabilities available in SAS Enterprise Guide to further enhance the information you deliver. Enterprise Guide version 4.1 will be used | sas enterprise guide, bar chart, sas programmer, proc step, sas log, dataset, proc sql | 20 | |
| 4 | A Hands-on Tour Inside the World of PROC SQL | Kirk Paul Lafler | Structured Query Language (PROC SQL) is a database language found in the base -SAS software. It enables access to data stored in SAS data sets or tables using a powerful assortment of statements, clauses, options, functions, and other language features. This hands -on workshop presents core concepts of this powerful language as well as its many applications, and is intended for SAS users who desire a n overview of the capabilities of this exciting procedure. Attendees will explore the construction of simple SQL queries, ordering and grouping data, the application of case logic for data reclassification, the creation and use of views, and the constructi on of simple inner and outer joins |
proc sql, where statement, proc step, select, inner join, index, order by, view, data merging, right join | 13 | |
| 5 | An Introduction to Statistical Power Calculations for Linear Models with SAS 9.1 | Robin High | In Version 9.1 SAS introduced two new procedures that compute power under a variety of statistical designs which are very effective study planning tools. In particular, this paper focuses on how SAS computes power for continuous response data. PROC POWER computes power for T-tests, one-way ANOVAs, correlations, and regression models. PROC GLMPOWER computes power for ANOVA and ANCOVA models with one or more between-subject factors and continuous covariates. PROC MIXED is shown to be yet another very effective study planning tool as data inputs can be manipulated to generate power calculations for comparisons of means from linear models of greater complexity, such as repeated measurements. The essential points of prospective power analysis will also be reviewed and contrasted with some of the fallacies that underlie retrospective power analysis |
proc step, sample, sample size, standard deviation, proc mixed, effect size, proc power, power analysis, covariance, correlation, repeated measures, anova, degrees of freedom, proc glmpower, dataset, proc ttest, alternative hypothesis, significance level, repeated measures anova, proc genmod, regression analysis | 17 | |
| 6 | Creating Interactive HTML Output With SAS | Chun Fan, Alexander Ushveridze |
Presenting the output of SAS data processing results in an interactive web-based form would allow technically non- experienced people to easily interact with it and instantly get answers to their specific high-level questions. This paper discusses a method for creating such interactive output within SAS environment. The goal can be achieved by embedding JavaScript file inside ODS HTML. As an example we consider creation of sortable interactive tables with embedded sortable graphics |
ods html, proc step, proc report, proc format, dataset | 6 | |
| 7 | Creating Multi-Sheet Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | Transferring SAS data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the new XML support in Base SAS 9.1 software to create multi-sheet Microsoft EXCEL workbooks (versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output. Tips and tricks with the ExcelXP ODS tagset will be divulged. Most importantly, the techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! The use of SAS server technology is also discussed. Although the title is similar to a paper presented at SUGI 31 (DelGobbo, 2006), this paper contains new and revised material not previously presented by this author |
excel, xls, proc print, sas output, proc report, sas base, change from baseline, adverse event summary, adverse events, sample, output delivery system, proc template, proc step, ods xml | 19 | |
| 8 | Don't Be Loopy: Re-Sampling and Simulation the SAS Way | David L. Cassell | The most common way that people do simulations and re-sampling plans in SAS is, in fact, the slow and awkward way. People tend to think in terms of a huge macro loop wrapped around a piece of SAS code, with additional chunks of code to get the outputs of interest and then to weld together the pieces from each iteration. But SAS is designed to work with by-processing, so there is a better way. A faster way. This paper will show a simpler way to perform bootstrapping, jackknifing, cross-validation, and simulations from established populations. It is simpler and more efficient to get SAS to build all the iterations in one long SAS data set, then use by-processing to do all the computations at once. This lets us use SAS features to gather automatically the information from all the iterations, for simpler computations afterward | sample, bootstrap, proc step, proc surveyselect, random sampling, data cleaning, confidence interval, output, permutation test, randomization, ods output, regression analysis, data step, proc sql, proc univariate, macro variable, monte carlo, sas output, proc append, proc reg, seed, macro definition, outlier, model validation | 18 | |
| 9 | How to Incorporate Old SAS Data into a New DATA Step, or "What is S-M-U?" | Andrew T. Kuligowski | S-M-U. Some people will see these three letters and immediately think of the abbreviation for a private university and associated football team in Texas. Others might treat them as a three-letter word, and recall a whimsical cartoon character created by Al Capp many years ago. However, in the world of the SAS user, these three letters represent the building blocks for processing SAS datasets through the SAS DATA STEP. S, M, and U are first letters in the wo rds SET, MERGE, and UPDATE - the 3 commands used to introduce SAS data into a DATA STEP. This presentation will discuss the syntax for the SET, MERGE, and UPDATE commands. It will compare and contrast these 3 commands. Finally, it will provide appropriate uses for each command, along with basic examples that will illustrate the main points of the presentation. SET Statement According to the Version 6 SAS Language |
dataset, libname statement, set statement | 9 | |
| 10 | Keep your database passwords out of the clear: Quick and easy tips to protect yourself | David C. Steven | Using SAS to access remote database servers, such as Oracle, DB2, Teradata, etc., usually requires your database userid and password. Many folks simply add this information into their SAS program, in clear text. Obviously, this is a bit of a security concern. The two primary reasons why people use this method are (1) That's what they know will work, and (2) Having SAS prompt for the password each time it's required often is not an acceptable alternative. This paper addresses a "quick and easy" way to implement a better means of keeping your password secure from someone else casually seeing it in your SAS code. | macro variable, proc step, sas log, macro definition | ||
| 11 | Mapping without GMAP: An Innovative Use of the SAS/GRAPH Annotate Facility | Peter J. Lund | Presentation | bar chart, adam dataset | 16 | |
| 12 | Missing Data? A Look at Two Imputation Methods | Anita Rocha | Statistical analyses can be greatly hampered by mis sing data. It represents a loss of information, bu t worse, it can introduce bias in the results of the analysis when the data is not missing at random. In the end can we make confident assertions? One way to help rectify the problem of missing data is to employ a sound method of imputation, a way to replace missing values with re asonable estimates. There are advantages and disad vantages to imputation. Here we look at two approaches. First , we consider the hot-deck method using SAS macros developed by Stiller and Dalzell (1998). Next, we explore the multiple imputation method using SAS PR OC MI and PROC MIANALYZE. The examples herein were run on SAS 9.1 for Windows requiring Base SAS and SAS/STAT |
imputation, missing value, multiple imputation, proc mi, proc step, sample, proc calis, nominal variable, interval variable, data science, regression analysis | 8 | |
| 13 | Multiple comparisons on 2xc proportions | John Horne | The Freeman-Tukey double-arcsine transformation is used to transform binomial or Poisson data so that they correspond with probabilities under the standard no rmal. This permits use of the normal distribution for significance testing on proportions. Tukey's HSD and other "post hoc" multiple comparison tests have traditionally been used to test differences among groups of means. The double -arcsine transformation allows for the use of these to test differences among proportions in 2 xc contingency tables. This paper presents a Base SA S macro that will run Tukey's HSD, LSD, Bonferroni, Dunn-Sidak and Scheffé tests on groups of proportions having a 2 xc structure. Simulation testing showed that each of these tests produced more conservative results and protected fa mily-wise error rates much closer to alpha risk than pairwise χ2 tests of association on the same proportions. The macro permits inputs as a 2 xc counts table or as proportions and their associate d sample sizes | binomial distribution, sample, type i error, sample size, hypothesis testing, sas base, macro definition, %if-%then-%else, proc freq | 12 | |
| 14 | New SAS Statistical Software: Just Over the Horizon | Randy Tobias | Presentation | regression analysis, proc step, outlier, proc quantreg, proc robustreg, proc loess | 48 | |
| 15 | ODS DATA Step Object | Richard Koopmann Jr. | Recently , I was tasked with developing a SAS program to phase out tedious, error-prone process of transcribing a few key numbers from hundreds of item summary tables to a dozen one-page summary tables. T o reduce end-user confusion, the revised reports needed to resemble the current layout and format as much as possible. Since the key statistics change across subgroups and span several item summary tables, a single tabulate or REPORT procedure wouldn't be sufficient. It appeared that traditional ODS reporting was out. Other reporting methods were explored, specifically DATA NULL reporting which allows the dynamic use of variables-via macro variables-and provides the layout control that would be needed. Due to the monospace appearance of these reports, however, DATA NULL reporting seemed to be out as well. Fortunately , ODS DA T A Step Object's ability to blend the layout control ofDATA NULL reporting with the formatting control of traditional ODS would help save the day |
raw data, data step | 8 | |
| 16 | PDF Can be Pretty Darn Fancy: Tips and Tricks for Advanced SAS Reporting | Peter J. Lund | We're not too far removed from the days when presentation-ready SAS output meant lots of cutting and pasting or retyping. Now, the ODS PDF destination enables you to produce high quality output the first time, without other tools or applications. This paper explores a number of ODS options in general and, more specifically, their use in creating PDF output. We will cover ODS ESCAPECHAR, which allows for inline formatting of titles, footnotes and other text; ODS LAYOUT, which lets you place output wherever you want it on the page - even output from more than one procedure; inline formatting in PROC REPORT; overlaying output from SAS/GRAPH procedures on top of other output and more. We'll work from real life examples and see how you can produce output that looks like it took hours to create |
proc step, proc report, ods pdf, footnote statement, proc print, proc tabulate, output delivery system, proc sql | 19 | |
| 17 | PROC REPORT Basics: Getting Started with the Primary Statements | Arthur L. Carpenter | The presentation of data is an essential part of virtually every study and there are a number of tools within SAS that allow the user to create a large variety of charts, reports, and data summaries. PROC REPORT is a particularly powerful and valuable procedure that can be used in this process. It can be used to both summarize and display data, and is highly customizable and highly flexible. Unfortunately for many of those just starting to learn PROC REPORT, the terms "customizable" and "flexible" often seem to be euphemisms for "hard to learn". Fortunately PROC REPORT is NOT as hard to learn as it appears. All you really need to have in order to get started is a basic knowledge of a few primary statements. In this introduction to PROC REPORT you will learn to use the PROC REPORT statement and a few of its key options. Several of the supporting statements, including COLUMN, DEFINE, BREAK, and RBREAK, and their primary options will also be covered |
proc report, proc step, class variable, proc means | 9 | |
| 18 | PROC REPORT: Compute Block Basics | Arthur L. Carpenter | One of the unique features of the REPORT procedure is the Compute Block. Unlike most other SAS procedures, PROC REPORT has the ability to modify values within a column, to insert lines of text into the report, to create columns, and to control the content of a column. Through compute blocks it is possible to use a number of SAS language elements, many of which can otherwise only be used in the DATA STEP. While powerful, the compute block can also be complex and potentially confusing. This tutorial introduces basic compute block concepts, statements, and usages. It discusses a few of the issues that tend to cause folks consternation when first learning how to use the compute block in PROC REPORT |
proc report, proc step, class variable, put statement, proc calis | 16 | |
| 19 | PROC TEMPLATE Tables from Scratch | Kevin D. Smith | Did you know that nearly every table created by the SAS System uses a template to describe what it looks like? Did you know that you can modify these templates, or even write your own templates to create custom tables? In this paper, you learn how to create and modify table templates, including how to add, remove, and move columns as well as headers and footers. You also learn how to apply styles, formats, and other visual effects, all from scratch | sas output, proc step, proc template, output delivery system, proc contents, end, ods html | 21 | |
| 20 | Producing Sparkline graphs with SAS | Paul OldenKamp | Edward Tufte has defined 'sparkline' as a "small, high resolution graphics embedded in a context of words, numbers, and images"[1]. They allow for very high density graphics information to be integrated with the text discussion and have been implemented in SAS infrequently. As with most SAS Software programming there are several ways to accomplish the same task. Sparklines have been produced using the SAS/GRAPH Annotate facility, PROC GCHART, and PROC GPLOT. These methods will be described and contrasted with the use of the DATA STEP Graphics Interface method presented in this paper. Among the future directions considered are to use True Type fonts to generate sparklines with Base SAS programming |
proc step, sample | 5 | |
| 21 | Regexps: Applications in Clinical Programming | Rohini Rao, Paul D. Hamilton |
Regular expressions are used by many programming languages to search for certain patterns in text. SAS is one such language that supports regular expressions for pattern matching. In the RX library of functions, RXPARSE is commonly used to parse a pattern in a string, be it a number, a letter, a character or a string of characters. Often, clinical programmers are faced with the challenge of extracting numbers in a stream of alpha-numeric output. This paper focuses on one solution to this problem. In particular, it explains how to extract the matrix of coefficients from the Expected Mean Square output of a MIXED Procedure. This code is part of a macro to automate statistical processing in support of early drug development and discovery. Introducing RXPARSE RXPARSE can be applied using default or user-defined character classes. Default Character Classes: The user specifies a default character class with a dollar sign ($) followed by a single upper- or lowercase letter |
character functions, clinical programming | 6 | |
| 22 | Revisiting DDE: An Updated Macro for Exporting SAS Data into Custom-Formatted Excel Spreadsheets | Nathaniel Derby | There are several ways to export data from SAS R⃝ into Microsoft R⃝ EXCEL R⃝ but very few allow for exporting into custom- formatted spreadsheets such as those demanded for specific reports. T raditionally , Dynamic Data Exchange (DDE) was the only way to do this. Now there are newer methods for this which are considered superior, and DDE is thought to be obsolete. This paper argues that DDE is actually far from obsolete and outperforms the newer methods in some cases that often arise in practice. Furthermore, this paper offers an accessible, flexible and modifiable macro which exports data from SAS into custom-formatted EXCEL using DDE. The macro extends the functionality of a previously published macro and addresses some general criticisms of DDE. Using it requires no DDE programming knowledge and thus brings the power of DDE to any PC SAS user. This macro works on all versions of PC Base SAS, Windows R⃝ and EXCEL. Keywords: DDE, EXCEL, Export, X4ML |
excel, dataset, macro variable, macro definition, proc step, proc sql, %if-%then-%else | 21 | |
| 23 | SAS Enterprise Guide and Stored Processes | Frederick E. Pratter | New in SAS 9, stored processes are SAS programs that are stored centrally on a server so that they can be accessed from anywhere in the organization. The advantage of stored processes over other approaches is in the ability to centrally maintain and manage code. They can provide better control over changes, enhance security and application integrity, and ensure that every client executes the latest version of code. SAS Stored Processes can be used in many different client applications, including SAS Enterprise Guide and the SAS Stored Process Web Application. This paper will cover creating and managing SAS Stored Processes using Enterprise Guide and the SAS Management Console, including the following topics: A brief overview of using SAS Management Console to set up and manage Metadata, Workspace and Stored Process Servers; and Using SAS Enterprise Guide to create and view stored processes | sas enterprise guide, sas management console, sample, macro variable, file statement | 17 | |
| 24 | SAS Tips, Tricks and Techniques | Kirk Paul Lafler | The base -SAS System offers users the power of a comprehensive DATA STEP programming language, an assortment of powerful PROCs, a macro language that extends the capabilities of the SAS System, and user -friendly interfaces including the SAS Display Manager. This presentation highlights numerous SAS tips, tricks and techniques using a collection of proven code examples related to effectively using the SAS Displa y Manager and its many features; process DATA STEP statements to handle subroutines and code libraries; deliver output in a variety of formats; construct reusable code; troubleshoot and debug code; and an assortment of other topics |
proc univariate, proc step, options statement, proc sql, dataset, macro facility, macro variable, macro parameter, %macro parameters, sas log, dictionary tables, ods pdf, ods rtf, sas output, if-then-else, ods html, macro definition | 16 | |
| 25 | The Basics of the PRX Functions | David L. Cassell | We are constantly needing ways to search for patterns in text, and change particular pieces of text. With the advent of SAS 9, the power of Perl's regular expressions is now available in the DATA STEP. The PRX functions and call routines let you to use the pattern matching features of Perl 5.6.1 to do these tasks, and more. This paper will explain what regular expressions are, and how to write basic Perl regular expressions. It will also show how to code the more useful PRX functions, and how to use these functions to search for text and replace text |
prxparse, sas 9, prxchange, prxmatch, sas function, variable, character variable | 18 | |
| 26 | The DATA HASH - Not the Monster You Think It Is | Kay L. Alden | Presentation | hash table, data step | 35 | |
| 27 | Undocumented and Hard-to-find PROC SQL Features | Kirk Paul Lafler | The SQL Procedure contains many powerful and elegant language features for advanced SQL users. This paper presents SQL topics that will help p rogrammers unlock the many hidden features, options, and other hard -to-find gems found in the SQL universe. Topics include CASE logic; the COALESCE function; SQL statement options _METHOD, _TREE, and other useful options; dictionary tables; automatic macro variables; and performance issues |
proc sql, proc step, macro variable, sas library, missing value, macro definition | 10 | |
| 28 | User-Written DATA Step Functions | Jason Secosky | For years, users have asked for the ability to write functions in DATA STEP syntax. The day has come when this is possible. In SAS9, the FCMP procedure provides the ability to write functions using DATA STEP syntax. In SAS 9.2, these functions can be called from a DATA STEP. This paper explains how to write functions with PROC FCMP and how these functions are invoked from a DATA STEP. It also contains caveats when calling PROC FCMP functions from a DATA STEP |
put statement, return, proc step, proc fcmp, file statement | 9 | |
| 29 | Using INFILE and INPUT Statements to Introduce External Data into the SAS System | Andrew T. Kuligowski | The SAS System has numerous capabilities to store, analyze , report, and present data. However, those features are useless unless that data is stored in, or can be accessed by, the SAS System. This presentation is designed to review the INFILE and I NPUT statements. It has been set up as a series of examples, each building on the other, rather than a mere recitation of the options as documented in th e manual. These examples will include various data s ources, including DATALINES, sequential files, and CSV files. GETTING STARTED - BASIC INFILE / INPUT with DATALIN ES In order to bring data from an external source into your SAS session, the user must provide the answer s to a couple of simple questions: Where is the data, and what does it look like? The INFILE statement will define the data source and provide a few tidbits of information regarding its form, while the INPUT statement will define the format of the data to be processed |
input statement, infile statement, excel, pointer control, proc print, proc step, length statement, filename statement, list input, variable, character variable, missing value, proc format, run, out= | 18 | |
| 30 | Using Links, Arrays, and Do-Loops | Jimmy A. DeFoor | Do statements, links, and arrays are part of the tool set of the good SAS programmer. They not only increase the functionality of the SAS DATA STEP, they also enhance program clarity and control while reducing maintenance effort. |
conditional do loop, dataset, do loop, do over, point= option, return, output, character variable, random sampling, array, array bounds, raw data, proc step | 13 | |
| 31 | Utilizing PHREG for Cox proportional hazards regression modeling with time-varying covariates | Marla J. Husnik, Eugene Huang |
When conducting time-to-event analyses for prospective clinical studies (where data is collected at time intervals), it is appropriate to utilize all information available. Missing data issues can also arise when modeling data of this nature. Conventions such as Last Value Carried Forward (LVCF) may be used to account for the missingness in covariates. In this paper, we describe an easy method in SAS for setting up Cox Proportional Hazards models with time- varying covariates utilizing PROC PHREG. We also describe the SAS code used for construction of LVCF. An example of an application of these techniques from a Phase IIB randomized, multi-site HIV prevention trial conducted in the US from 1999 to 2003 (called EXPLORE), are illustrated and discussed |
proc phreg, time-dependent covariate, proc step, hazard ratio, likelihood function, maximum likelihood estimation, label statement, missing value, proc freq | 14 | |
| 32 | Working with PROC GMAP and a note about Census ZCTAs | Deron Ferguson | The SAS/GRAPH GMAP procedure is a versatile tool for making maps in SAS. This paper describes a work-around for a known bug when importing Census 2000 ZCTA boundaries with MAPIMPORT, and on the way it illustrates a few basics of GMAP and related mapping procedures |
proc gmap, proc step | 14 | |
| 33 | XML engine in base SAS | Don Hurst, Sarmad Pirzada |
Presentation | 58 |
This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.
The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.
SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS