PharmaSUG 2012 Papers - Index
183 papers. Source: PharmaSUG (Pharmaceutical Software Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | "Analysis-ready" - Considerations, Implementations, and Real World Applications | Ellen (Zihui) Lin, Beiying Ding |
"Analysis-ready" is one of the widely accepted key principles that have been applied in clinical trial analysis database design. It is also emphasized in CDISC ADaM v2.1 and CDISC ADaM Implementation Guide v1.0. However, there still remains ambiguity in some aspects of "analysis-ready" concept and implementation. This is largely due to the often very diverse nature of collected data and planned analyses. The lack of consensus in the industry on the concept of analysis and the application scope of "analysis-ready" principle has also led to drastically different interpretations and implementations. In some situations, programming logic such as complicated data derivation dependency may affect implementation of this principle as well. In the past years working on analysis database design and regulatory submissions, we have encountered numerous challenges and decision makings trying to maximize "analysis-ready" potential in practice | adam dataset, adverse events, data review, change from baseline, clinical trial, percent change from baseline, proc step, regulatory submission, merge statement, data merging, proc means, flag variable, sdtm domain, data science, cdisc | source | 6 |
| 2 | "V" Can Transpose: Transposing Data Sets Using Functions | Nehan Mohan | When a formatted character variable is transposed simultaneously with other variables, the PROC TRANPOSE procedure returns unformatted values of the character variable. In cases when the formatted values associated with the character variable are desired, it is required to either transpose the corresponding variable separately or alternately create a new variable holding the corresponding formatted values, and then transpose this new variable along with other variables. This paper demonstrates the use of three "V" functions namely VVALUE, VNAME and VLABEL in transposing such variables; function VVALUE, to directly return the formatted values associated with the variables (that a PROC TRANSPOSE would not) and functions VNAME and VLABEL, to maintain the list of original variable names and their labels respectively (that a PROC TRANSPOSE would return) |
proc transpose, proc step, character variable, numeric variable, sample | source | 4 |
| 3 | 7 Steps to Progression Free Survival Insights Using SAS | Karen Walker | 7 steps to Progression Free Survival Insights using SAS will show how to take any oncology source data, render it to tumor domains, create both subject level and parameter level analysis data then subsequently produce stunning insightful documents with SAS that can be used to find a cure for cancer. A growing number of people are affected by cancer, as thus we need as many persons as possible to understand it. Because I feel so strongly about this, I'm giving up the goods on the best work I know. You'll find in this paper a collection of methods, and programs that are so intuitive, and eloquently assembled that anyone who can read will understand my process. Perhaps there's a talented doctor who has no time to tinker with a computer program, and yet is close to finding the right treatment. This paper is for that person. My aim is to make CDISC SDTM and ADaM data rendering follow easier. So this paper illustrates the natural progression from: data gathering, to analysis, to insights | adam dataset, adamig, proc step, raw data, proc sql, sample, proc sort, binomial distribution, cdisc | source | 12 |
| 4 | A CareerView Mirror: Another Perspective on Your Work and Career Planning | Bill Donovan | Career planning in today's tumultuous job marketplace requires a more rigorous and disciplined approach, which must begin with each individual tracking his or her particular skills and experiences. The ability to organize and inventory your entire career-related experiences is the foundation of a solid career plan. The catalog of your work assignments and functional responsibilities creates a reflection of your efforts in your career to-date. All of this helps to build your CareerView Mirror | source | 3 | |
| 5 | A Comparison of Two Commonly Used CRO Resourcing Models for SAS/ Statistical Programmers | R. Mouly Satyavarapu | Why do we have Contract Research Organizations (CROs)? Pharmaceutical, Biotechnology, and Medical Device companies are trying to streamline their costs by outsourcing the processes to conduct and report clinical data. In this paper, I will introduce the benefits of outsourcing to a CRO for companies varied clinical functional activities. The decision to outsource to a CRO is typically driven by business needs that include: either to benefit the expertise of the CRO, or they have limited resources within their company (technology, staff, etc.), and cost reduction. Based on the scope of work and the company's preferences to operate, the sponsor/ client (the company) and the CRO decides on the resourcing model that meets the needs of both parties, which would eventually be included in their contracts | clinical trial, data cleaning | source | 5 |
| 6 | A Complex ADaM dataset? Three different ways to create one. | Kevin Lee | The paper is intended for Clinical Trial SAS programmers who create and validate a complex ADaM dataset. Some ADaM datasets require the use of complex algorithms. These algorithms could require several steps of data manipulation and more than one SDTM datasets. It can be very challenging to create a complex ADaM dataset in accordance with ADaM data structures and standards. Furthermore, it can be equally as challenging to validate those ADaM datasets. The paper will introduce three different ways to create a complex ADaM dataset. The first way is to create ADaM from SDTM directly without any intermediate permanent datasets. The second way is to create ADaM through the intermediate permanent datasets like SDTM+ or ADaM+ from SDTM. The third way is to create the final ADaM through the intermediate ADaM from SDTM. The paper will discuss the benefits and limitations of each method and also show some examples | adam dataset, permanent dataset, sdtm domain, sas programmer, imputation, baseline, treatment period, cdisc | source | 11 |
| 7 | A Cup of Coffee and Proc FCMP: I Cannot Function Without Them | Peter W. Eberhardt | How many times have you tried to simplify your code with LINK/RETURN statements? How much grief have you put yourself through trying to create macro functions to encapsulate business logic? How many times have you uttered "If only I could call this DATA STEP as a function"? If any of these statements describe you, then the new features of PROC FCMP are for you. If none of thes e statements describe you, then you really need the new features of PROC FCMP. This paper will get you started with everything you need to write, test, and distribute your own "DATA STEP" functions with the new ( SAS 9.2) PROC FCMP. This paper is intended for beginner to intermediate programmers, although anyone wanting to learn about PROC FCMP can benefit |
proc fcmp, proc step, sas log, return, put statement, sas programmer | source | 16 |
| 8 | A Hitchhiker's guide for performance assessment & benchmarking SAS applications | Viraj R Kumbhakarna, Anurag Katare |
Almost every IT department today, needs some kind of an IT infrastructure to support different business processes in the organization. For a typical IT organization the ensemble of hardware, software, networking facilities may constitute the IT infrastructure. IT infrastructure is setup in order to develop, test, deliver, monitor, control or support IT services. Sometimes multiple applications may be hosted on a common server platform. With a continual increase in the user base, ever increasing volume of data and perpetual increase in number of processes required to support the growing business need, there often arises a need to upgrade the IT infrastructure. The paper discusses a stepwise approach to conduct a performance assessment and a performance benchmarking exercise required to assess the current state of the IT infrastructure (constituting the hardware and software) prior to an upgrade | cpu time, sample, predictor variable, traffic data, proc step, data science | source | 16 |
| 9 | A Macro to Indent and Hyphenate Lengthy Text in PROC REPORT | Stanley Yuen | A SAS programmer can have long text values in a character variable to wrap in multiple lines using the FLOW option and SPLIT character assignment in PROC REPORT. This option is limited in allowing additional leading blank characters as indentations for each line of output. It can also sometimes break up a word with the remaining characters in the next line of output. When there is flowing text, it is preferable to insert a hyphen to indicate a word fragment and avoid unsightly spacing in left-justified text. This paper discusses a macro that modifies a character variable to allow the FLOW option and SPLIT character to produce indented hyphenated text in PROC REPORT using Base SAS 9 functions in the DATA STEP. The macro is also flexible in designating different indentations for the first line of text compared to the other lines for each observation in a report |
proc report, proc step, character variable, macro parameter, adverse events, sample | source | 5 |
| 10 | A Mean Way to Count, Enumerating the Values of Multiple Variables Using Formats with the Means Procedure | Rod Norman | Perhaps the most common task of the clinical SAS programmer is to count things. Things like adverse events, laboratory value grade shifts, demographics, etc. and to do this over a wide variety of scenarios. To accomplish these assignments, programmers should consider using features of the MEANS procedure in conjunction with the MULTILABEL option of the VALUE statement within the FORMAT procedure. By invoking PROC MEANS on datasets that included only variables listed in CLASS statements and not using a VAR statement, efficiently produced output will contain only counts for all combinations of the CLASS variables. By using the PRELOADFMT and MLF keyword options on CLASS listed variables, a variety of counting scenarios can be applied to the input data. A TYPES statement identifies just the combinations of variables that are desired in the dataset created using OUTPUT OUT= |
proc step, adverse events, proc format, proc means, class variable, macro variable, proc sql | source | 6 |
| 11 | A Multifaceted Approach to Generating Kaplan-Meier and Waterfall Plots in Oncology Studies | Stacey D. Phillips | The new Statistical Graphics (SG) procedures and Graph Template Language (GTL) available in SAS 9.2 have greatly increased the flexibility and ease with which graphs and figures are generated from SAS. This paper will demonstrate multiple methods of generating the commonly utilized Kaplan-Meier curve and waterfall plot from oncology data. Examples and discussion will range from traditional SAS/GRAPH procedures such as PROC GPLOT to Statistical Graphics (PROC SGPLOT) and the Output Delivery System (ODS) with GTL |
proc step, waterfall chart, proc sgplot, proc template, proc gplot, output delivery system, graph template language, censoring, sas output, sample | source | 12 |
| 12 | A Practice to Create Executable SAS Programs for Regulatory Agency Reviewers | Hongyu Liu, Lynn Anderson, James R. O'Hearn, Kexi Chen |
Providing executable SAS programs (in connection with the statistical analysis data sets and clinical table outputs) is presently not required with a NDA submission; however they are of great benefit to a regulatory agency reviewer for expediting the review process. This paper will discuss basic considerations, challenges, approaches and examples of practices on how to create executable SAS programs for regulatory agency reviewers | macro variable, sample, data science, efficacy summary, staging area | source | 6 |
| 13 | A SAS Macro for Biomarker Analysis using Maximally Selected Chi-Square Statistic With Application in Oncology | Quan Jenny Zhou, Bala Dhungana |
Biomarker assessment has become an essential tool for evaluating treatment effects in subpopulations of potential drug responders in oncology studies. It is believed that treatment effects can differ between patient subgroups with different genotypes, and therefore biomarkers may help predict treatment effects in these subpopulations. There are many statistical methods for selecting biomarkers as candidate classifiers when identifying subgroups. One approach is to transform each continuous biomarker into a binary covariate by selecting a threshold with certain optimal properties and fit it in the survival model, one biomarker at a time. Selection of a threshold can be done by using maximally selected chi-square statistic, as proposed in Miller and Siegmund, 1982 | treatment effect, hazard ratio, main effect, macro parameter, dataset, proc phreg, regression analysis | source | 8 |
| 14 | A SAS Macro Utility to Append SAS-Generated RTF Outputs and Create the Table of Contents | Sudhakar Anbazhagan, Shridhar Patel |
In Clinical Trial reporting, the analyses and the results are conveyed through tables and data listings. Depending upon the complexity, the number of tables and listings may vary from study to study. However, it is extremely useful to organize all the individual tables and listings generated using SAS, into a single file with a table of contents (TOC). Traditionally, these outputs would be compiled either manually or by using Stored Word VBA process. The disadvantage of these methods is that they are either time consuming or prone to errors. Although output methods vary, reports generated in Rich Text Format (RTF) have gained popularity. SAS uses very basic RTF tags to produce elegant outputs. Since RTF files are in one way plain text files, we can utilize the powerful text handling features of SAS to gather the required information needed for creating the TOC page by identifying certain RTF tags which hold that information | ods rtf, proc report | source | 4 |
| 15 | A SAS Tool to Allocate and Randomize Samples to Illumina Microarray Chips | Huanying Qin, Greg Stanek, Derek Blankenship |
DNA/RNA Microarray has become a common tool for identifying differentially expressed genes under different experimental conditions. Several microarray platforms exist and differ by probe implementation and target-labeling strategies. When it comes to sample allocation, Illumina BeadChip is most unique because each chip can hold 12 samples, while for other platforms, each chip holds one sample or a combination of 2 paired samples. This adds complexity to sample randomization because each chip serves as a block and often the number of samples for each study group is not balanced, ie. each group does not have the same number of samples. The SAS PROC PLAN procedure is able to aid in the design and randomization of sample allocation for balanced studies but is limited for unbalanced studies. This paper describes a SAS macro tool we developed to implement an optimizing algorithm to allocate and randomize samples to Illumina chips for unbalanced study designs |
sample, proc step, randomization, proc sql, proc sort | source | 6 |
| 16 | A Standard SAS Program for Corroborating OpenCDISC Error Messages | John R. Gerlach, Ganesh Sankaran Thangavel |
The freeware application OpenCDISC does a thorough job of assessing the compliance of SDTM domains to the CDISC standard. However, the application generates error and warning messages that are often vague, even confusing. Thus, it is beneficial to corroborate the CDISC compliance issues using SAS. Moreover, realizing that a validation check generates similar messages across CDISC data libraries, the SAS code should be similar, as well. Thus, paper explains a comprehensive standard SAS program that contains concise and reusable code that facilitates the process of corroborating OpenCDISC (OC) reports | proc sql, libname statement, data cleaning, create table, proc freq, where statement, proc step, by group processing, missing value, study day, proc print, frequency analysis, cdisc | source | 12 |
| 17 | Accessing Microsoft Excel Workbook Cell Attributes from within SAS v9 | Timothy J. Harrington | Data in a Microsoft EXCEL worksheet is now readily accessible to SAS v9 using the IMPORT Procedure, and to SAS v9 and earlier using the DDE triplet. Although worksheet cell contents can be read into a SAS dataset, cell attributes such as bold, italics, underscore, strikethrough, and color are not, at least in present releases of SAS, readily accessible. This paper discusses and uses an example SAS program to show how cell attributes in Microsoft EXCEL can be determined by a SAS program reading the contents of an EXCEL worksheet |
excel, put statement, dataset, macro variable, filename statement, exposure, medical history | source | 9 |
| 18 | ADaM Implications from the "CDER Data Standards Common Issues" and SDTM Amendment 1 Documents | Sandra Minjoe | Over the past few years, the United States Food and Drug Administration (USFDA), specifically the Center for Drug Evaluation and Research (CDER), has been receiving more data from sponsors in a Clinical Data Interchange Standards Consortium (CDISC) or CDISC-like structure. Reviewers have had tools built and received training, but there are some technical issues with many submissions that are hindering their review process and thus their full adoption of CDISC. This prompted the issuance of a document entitled "CDER Common Data Standards Issues Document". Working closely with CDER to address many of these issues, the CDISC Submission Data Standards (SDS) team created an Amendment to the Study Data Tabulation Model (SDTM) version 1.2 and the SDTM Implementation Guide (IG) version 3.1.2. The CDISC Analysis Data Model (ADaM) team has not created a corresponding amendment, but there are many issues noted in the CDER document that have implications on ADaM | study day, adam dataset, imputation, adverse events, baseline characteristics, sdtm domain, cdisc | source | 6 |
| 19 | Adapt and Survive: Implementing the new ICH Development Safety Update Report (DSUR) | Patricia L. Gerend, Rajkumar Sharma |
In 2010, the International Conference on Harmonization (ICH) rolled out its E2F Development Safety Update Report (DSUR) guideline. The DSUR is similar to the US's Investigational New Drug Annual Report (IND-AR) and the EU's Annual Safety Report (ASR) in that its purpose is to provide a brief overview of safety for a project on an annual basis so health authorities can better make decisions to protect the safety of patients. However, there are some significant differences in content between DSUR and previous annual reports. Since DSUR implementation is new to all companies, getting a handle on best practices is a wide-spread challenge. This paper will address the major highlights of DSUR content and suggest some ways of producing these reports efficiently within a company | adverse events, treatment arm | source | 10 |
| 20 | Algorithm to Compare the Slopes (Regression Coefficients) between the subgroups in Simple/Multiple Regression using PROC REG | Sandeep Sawant | Regression analysis is the most common technique used for data analysis in clinical trials. In regression analysis, a regression line is fitted for the response variable (e.g. Viral load at the end of the study) based on few explanatory variables (e.g. Baseline viral load, time since first diagnosis etc.). A regression line Y=a+bX is fitted, where Y is the response variable, X is the explanatory variable, a denotes the intercept and b is the slope (regression coefficient) of the line. The slope indica tes the change in the value of Y if X is changed by one unit. Therefore slope is often useful measure of exam ining the rate of change in variable Y. In clinical trials, comparing slope (rate of change) for two (or more subgroups e.g. Active vs. Placebo) can be the area of interest to assess the effect of medical treatment. SAS procedure PROC REG does not performs the desired analysis directly but some kind of data manipul ation is needed |
regression analysis, dose, predictor variable, multiple regression, binary variable, response variable, proc reg | source | 3 |
| 21 | An Efficient Method to Create Titles for Multiple Clinical Reports Using Proc Format within A Do Loop | Youying Yu | Do you know how to create titles for multiple clinical reports directly from data using SAS PROC FORMAT within a Do loop? When we work with clinical efficacy data, we often have the total score and sub item score. Sometimes, the efficacy data contains up to 50+ sub items. Each item and total score will go through the same analysis and get outputs from the statistical models. Then, tables are put into one file with one item per page. Traditionally, we create macro using hard coding via macro parameter for the title of the parameter description in each table. However, there is a more efficient way to do this. We can use PROC FORMAT from the data to create the title of the parameter description for each item table automatically within a Do loop. Using this method, we can avoid hard coding or possible typos in the titles. This paper introduces how to utilize this tip and trick |
proc step, do loop, proc format, proc freq | source | 5 |
| 22 | An Innovative ADaM Programming Tool for FDA Submission | Xiangchen (Bob) Cui, Min Chen, Tathabbai Pakalapati |
It is a good practice to include data definition tables (define.xml) and a reviewer's guide along with ADaM datasets to minimize the time to familiarize with submitted clinical data and expedite the approval process by FDA reviewers. It is important to ensure consistency in metadata among data definition tables, reviewer's guide and ADaM datasets. This paper describes automated ADaM Programming Tool, consisting of six SAS macros, to streamline the process of creating programming specification, compliance checking of specifications with FDA and CDISC requirements, deriving ADaM datasets and generating define.xml and a reviewer's guide | adam dataset, dataset, controlled terminology, macro call, macro variable, reviewer guide, data cleaning, ctcae grade, macro definition, clinical trial, macro put, sample, sdtm domain, cdisc | source | 25 |
| 23 | An Introduction to Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | This paper explains how to use Base SAS 9 software to create multi-sheet EXCEL workbooks (for EXCEL versions 2002 and later). You learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output using the ExcelXP ODS tagset and ODS styles. 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! Creating and delivering your workbooks on-demand and in real time using SAS server technology is discussed. Although the title is similar to previous papers by this author, this paper contains new and revised material not previously presented |
excel, xls, sas output, output delivery system, sas base, proc print, proc step, ods xml, proc tabulate, sample | source | 20 |
| 24 | An Introduction to the Clinical Standards Toolkit and Clinical Data Compliance Checking | Mike Molter | Since the dawn of CDISC, pharmaceutical and biotech companies as well as their vendors have tried to inject standards compliance checking into their clinical and statistical programming flows. Such efforts are not without their challenges, both from technical as well as process standpoints. With the production of data sets and tabular results taking place inside of SAS programs, it's tempting to add code to this flow that performs these checks. While the required code can be relatively straightforward for SAS programmers with even modest programming and industry experience, all too often the management of such code and the processes around its use is where the difficulties occur. Without proper management, seemingly simple tasks such as selecting which checks to run or changing process parameters become more complicated than necessary | data cleaning, macro variable, macro parameter, controlled terminology, raw data, validation set, proc contents, proc step, sas base, data standard, missing value, phase ii, phase iii, sample, txt, clinical data, format statement, macro definition, proc sql, cdisc | source | 14 |
| 25 | Application of Meta-Analysis in Clinical Trials | Marina Komaroff | Drug development is a long and expensive process where each step should be carefully planned. During design stage of a clinical trial, the sample size calculation has to be performed based on a primary objective of the trial and target to achieve the desir ed power for detecting a clinically meaningful difference between test drug and standard/control at a fixed Type I Error rate. However, information about test drug in pilot studies is limited and most of the times statisticians do "the best guess" about ef fect size of a new drug that leads to wrong sample size calculation and then to failure of the trail. Meta-analysis can help. Combining all existing information about the test drug, meta -analyses intent to give better estimation of effect size for a new d rug that determines required sample. In current years, one of the obstacles was that meta-analysis is not an easy task and special software is usually required to perform it | effect size, sample, sample size, clinical trial, ls mean difference, least squares mean, proc power and sample size, data science, proc mixed, standard deviation | source | 7 |
| 26 | Are You Discrete? Patients' Treatment Preferences and the Discrete Choice Experiment | Beeya Na, Eric P. Elkin |
The discrete choice experiment (DCE) was designed for use in economics and marketing research to study consumer preferences. However, DCE has been increasingly used in health care research as a method to elicit patient preferences for characteristics of different types of treatments. In a DCE, attributes are defined for treatments (for example: frequency of administration, occurrence of side effects, how long treatment effect lasts) and levels of the attributes (for example: taking one pill once a week, once a day, or twice a day). Respondents are presented with pairs of hypothetical treatments with different combinations of each attribute level and are asked to choose their preferred treatment. Analyzing the responses allows evaluation of the relative importance of the attributes and the trade-off respondents are willing to make between the attributes | proc step, proc phreg, logistic regression, proc logistic, conditional logistic regression, likelihood function, logistic distribution, null hypothesis, estimate, proc freq | source | 5 |
| 27 | Arriving 'Normally' at t-test for a treatment combination | Naina Pandurangi | In clinical trials involving more than one active treatmen t, often statistics in a treatme nt combination are analyzed. When the inferences (t-test p-value) of continuous data of a tr eatment combination are based on normality checks of the data, there is a slight probability of going wide of the mark if the uniqueness of raw data points is not maintained after combining the treatments or if one of the samples of interest has sparse data. This paper discusses the two areas of caution and the resultant incorrect decisions/oversight that might occur: 1) Passing the input dataset for normality check: If not careful, one may make false normality decision. 2) Picking the t-test p-value based on equality of variances (standard F test) in case of lack of data: If not careful, one may overlook the t-test p-value | sample, raw data, heteroscedasticity | source | 7 |
| 28 | Atypical Applications of Proc Transpose | John Henry King | Did you know that PROC TRANSPOSE can be used to verify the existence of variables in a SAS data set? It can process a list of variable name(s) or a "SAS Variable List" or a combination of the two. You can also check if the variables in a list are numeric or character. Using the return code from PROC TRANSPOSE a program can branch based on success or failure of PROC TRANSPOSE. Did you know you can use PROC TRANSPOSE and a DATA STEP to determine if a list of variables is in one variable list but not another? This paper shows how to accomplish these tasks and other atypical uses of PROC |
proc transpose, proc step, numeric variable, variable list, macro variable, character variable, variable, lookup, proc sql, proc means | source | 14 |
| 29 | Automate Validation of CDISC ADaM Variable Label Compliance | Wayne (Weizhen) Zhong | A sometimes overlooked feature of the CDISC ADaM Implementation Guide is that it specifies label names for each ADaM variable. To improve quality of delivery and reduce the tedious task of checking variable labels, this paper presents techniques for producing a quick compliance report. Details include how to check ADaM variables with placeholders like xx and *, and how to detect at the dataset metadata level a few cases of ADaM non-compliance. The latest CDISC ADaM metadata can be stored in an EXCEL spreadsheet, and easily updated with future ADaM label rules |
proc sql, label statement, length statement, proc contents, excel, cdisc | source | 4 |
| 30 | Automated forward selection for Generalized Linear Models with Categorical and Numerical Variables using PROC GENMOD | Manuel Sandoval | Generalized linear models are a powerful tool to measure relationships between variables, as they can handle non- normal distributions without altering the properties of variables involved. When applied to risk factor analysis, they can help determine the most important factors contributing to the incidence, prevalence or acquisition of a particular medical condition. This paper presents a particular case in which the aforementioned factors are unknown and a selection must be made from a pool containing both numerical and class variables. Since the model uses an option that is only present in the GENMOD procedure (and not in the LOGISTIC procedure, for example), an algorithm for selecting variables needed to be created from scratch. The proposed macro was built in such a case. Several factors, both numerical and categorical, were tested using forward selection and defined criteria for entering the model and for keeping the variable in the model |
macro variable, proc step, forward selection, proc genmod, logistic distribution, proc logistic, backward selection, significance level, stepwise selection, regression analysis, binomial distribution | source | 5 |
| 31 | Automatic Consistency Checking of Controlled Terminology and Value Level Metadata between ADaM Datasets and Define.xml for FDA Submission | Xiangchen (Bob) Cui, Min Chen |
When submitting clinical study data (SDTM and ADaM data sets) in electronic format to the FDA, it is preferable to submit data definition tables (define.xml) and a reviewer guide (define.pdf). It is desirable to ensure the consistency between data sets and define files, and achieve technical accuracy and operational efficiency. This paper introduces a SAS macro approach to automate consistency-checking of controlled terminology and value level metadata between ADaM data sets and define.xml. It avoids the waste of time and resources for verification of the consistency and/or resolution of inconsistency at a later stage. It also details how to develop ADaM Metadata (programming specification) for automation purposes, illustrates five scenarios of mismatches from consistency checking, and provides corresponding resolutions to these mismatches | controlled terminology, adam dataset, dataset, sdtm domain, bds, macro definition, time variable, cdisc | source | 15 |
| 32 | Automatic Detection and Identification of Variables with All Missing Values in SDTM/ADaM Datasets for FDA Submission | Min Chen, Xiangchen (Bob) Cui |
When submitting clinical study data in electronic format to the FDA, it is preferable to submit as few as possible unnecessary variables which have all missing values. This kind of variable is called empty variable. It is highly desirable to automate the process of detecting and identifying empty variables in the submitted datasets. Handling these identified empty variables is very critical for FDA submission. CDISC introduced a concept of core variable in an SDTM domain and an ADaM dataset. A variable is categorized as Required, Expected, and Permissible in an SDTM domain and as Required, Conditionally Required, and Permissible in an ADaM dataset. Applying the information of core variable categories to these empty variables provides a better decision to handle these empty variables in an FDA submission. Hence it ensures the technical accuracy and submission quality | adam dataset, missing value, sdtm domain, data cleaning, sdtm programming, cdisc | source | 7 |
| 33 | Automatic Version Control and Track Changes of CDISC ADaM Specifications for FDA Submission | Xiangchen (Bob) Cui, Min Chen |
CDISC ADaM specifications documentation is the core of the programming activities in FDA submission. It serves as the primary source for ADaM programming and validation, define.xml and reviewer guide, and also helps in establishing metadata traceability. It is preferable to create ADaM specifications in Word Format to facilitate both reviewing and approving of specifications documentation by statisticians and/or validators. Since derivation rules may be complex and subject to constant change during the whole ADaM programming activities, it is desirable to automatically keep track of different versions of ADaM programming specifications. It is more beneficiary for sponsors to keep track of different versions when ADaM programming is outsourced to external vendors. This paper introduces a SAS macro to automatically detect and report any revisions between the new version and the old version of programming specifications | dataset, adam dataset, macro call, macro definition, cdisc | source | 8 |
| 34 | Automation of Comparing ODS RTF Outputs in Batch using VBA and SAS | Dongsun Cao | In the pharmaceutical industry, Table, Listing and Graphs (TLGs), often produced in Rich Text Format (RTF), are the integral part of the new drug application (NDA) for approval to the regulatory agency. Therefore, it is essential to have an efficient quality check mechanism in place to ensure the quality of those outputs. One of the quality checks processes widely adopted is to have two programmers to perform independent programming and then visual ly check one RTF output against another. Because visual check is time consuming and error prone, it is important to have this process automated. So far, there are several papers published to address the automation but none of them implement a process without either changing original table structure or losing some information such as titles, footnotes or headings, thus limiting its use. In this paper, I present an automated process in which RTF outputs from two directories are compared against each other and comparison results are reported | txt, ods rtf, dataset, proc step, data cleaning, proc compare, clinical trial, independent qc, macro variable | source | 8 |
| 35 | Avoiding a REL-WRECK; Using RELREC Well | Karl Miller, Joseph J. Hantsch, Janet E. Stuelpner |
Everything that happens to a single subject in a clinical trial is interrelated. Most points of data can be reported and processed in isolation, but not all. When two or more points of data in two or more CDISC Study Data Tabulation Model (SDTM) domains require reporting their relationship, there is a Special-Purpose domain, RELREC (Related Records) for this purpose. Although employed for accidental (or inexplicit) relationships where data destined for two domains is collected on one CRF page; an explicit relationship between data reported in two dom ains is also possible. A subject who takes a concomitant medication to treat an adverse event has an explicit relationship between two records in the CM and AE domains. An adverse event which causes a dose-delay or titration (AE & EX), a lab value which indicates a change in dosing epoch (LB & DS) and a substance usage report which results in study termination (SU & DS) are other examples of related records | adverse events, concomitant medications, clinical trial, cdisc | source | 6 |
| 36 | Basic Debugging Techniques | Beatriz Garcia, Alberto Hernandez |
When we are working with a large amount of data, tracking down logic errors in our code may be difficult to do; for example, the size of a Data Set may make it difficult to print, and manually tracing through record processing can take a long time. Since debugging is the process of removing logic errors from a program, this paper describes some useful techniques like using a simple %PUT statement; PUT statement or the DATA STEP Debugger(SAS 9.2) to facilitate and speed up the debugging of your SAS code |
put statement, macro put, sas function, sas log | source | 8 |
| 37 | Beyond %LET: Building a GUI to Pass Run-Time Parameters to SAS Programs Using VBScript and HTML Applications | Shawn Hopkins | Changing a program in a validated environment requires review and documentation. Maintaining validation documentation for programs that require changes to macro variable assignments or LIBNAMEs with each submission can become tedious. There are also the additional risks of users making unintentional changes to the source code, or providing unexpected values to macro parameters. Accepting specifications through a Graphic User Interface (GUI) at run-time allows the program both the flexibility to dynamically modify parameters within the code, and ensure only valid values are provided for parameters. Using VBScript and VBScript within an HTML application (HTA) provides functionality to collect user input and pass the values to SAS programming environment. This approach leverages simple VBScript functions, the familiar file dialog boxes used in Microsoft Office applications, and allows custom form creation with a variety of controls to meet most business needs | macro variable, macro definition | source | 8 |
| 38 | Building a Team of Remote SAS Programmers | Ramesh Ayyappath | Virtual work arrangements have become increasingly prevalent during the last decade among SAS programmers working in pharmaceuticals and CROs, and it is set to accelerate in the coming years due to technological advancement and organizational cost benefits. There are tremendous benefits to this kind of work arrangement - for both the employer and employee. However, building and maintaining a successful virtual team is a challenging task and it involves significant efforts from the organization, management, and employee levels. For an employer, hiring an experienced SAS programmer is hard enough, and if telework has to be factored in, it makes the process even more difficult. For an employee, telework is a great incentive, but this kind of work arrangement has its own set of problems and is not suited for everyone | sas programmer, sas programming | source | 6 |
| 39 | Building Flexible ADaM Analysis Variable Metadata | Songhui Zhu, Lin Yan |
Building variable metadata for a clinical study is tedious and time-consuming in the process of ADaM development. Especially, changes in variables and analysis rules from various sources make harmonization of metadata for multiple parallel studies challenging. There is a need to build meta data with great flexibility to accommodate various dynamic changes in variables and analysis rules. In this paper, methods for creating variable metadata with various flexibilities are presented. The flexibilities include that to accommodate the changes in attributes from SDTM data, that to accommodate the changes in attributes of variables in common variables, that to accommodate the changes in analysis time points, and that to accommodate the changes in analysis derivation rules. In addition, principles for grouping variables are also proposed | adam dataset, full analysis set, cdisc | source | 10 |
| 40 | Building Reports and Documents in SAS Enterprise Guide 4.2: How to Create a Single Document from Multiple Reports and Tasks | R. Scott Leslie | The report building functions in SAS Enterprise Guide allow greater ability to create and publish final documents from multiple project tasks and reports. This tutorial demonstrates how to leverage the power of SAS while using the handy features of Enterprise Guide to create a process flow for generating reports. Topics covered include: navigating the Enterprise Guide menus, creating a report with the Report Builder wizard, combining reports and tasks into a single document using Report layout, and using prompts to generate custom reports from a template | sas enterprise guide, proc print, bar chart, proc step | source | 13 |
| 41 | Building the Better Macro: Best Practices for the Design of Reliable, Effective Tools | Frank C. DiIorio | The SAS macro language has power and flexibility. When badly implemented, however, it demonstrates a chaos- inducing capacity unrivalled by other components of the SAS System. It can generate or supplement code for practically any type of SAS application, and is an essential part of the serious programmer's tool box. Collections of macro applications and utilities can prove invaluable to an organization wanting to routinize work flow and quickly react to new programming challenges. But the language's flexibility is also one of its implementation hazards. The syntax, while sometimes rather baroque, is reasonably straightforward and imposes relatively few spacing, documentation, and similar requirements on the programmer. In the absence of many rules imposed by the language, the result is often awkward and ineffective coding. Some amount of self-imposed structure must be used during the program design process, particularly when writing systems of interconnected applications | macro variable, macro facility, macro definition, macro loop, macro put, data cleaning, automatic macro variable, keyword parameter, %macro parameters, sas log, %if-%then-%else, error message, sysrc, symbol table, macro function, autocall macro, macro parameter, options statement, proc step, dictionary tables | source | 16 |
| 42 | Calculating time-to-event parameters using a single DATA step and a RETAIN statement | Andrew L Hulme | During oncology studies, a typical measure of efficacy is the amount of time elapsed until a particular response is achieved for the first time (time to response) and how long that response is maintained (duration of response). For subjects that do not meet the response criteria before the end of the study, a censoring flag and time must also be calculated. Thus, typical methods of calculating these parameters use several programming steps for each particular variable of interest. This paper presents a method to calculate all necessary parameters in a single DATA STEP using a RETAIN statement. A subject's records are ordered by date and the response criteria are evaluated during each iteration of the DATA STEP. If the criteria are met the time-to-event values are passed to the retained variables and kept until a subject's last record; if not, the censored time is calculated on the last record and outputted |
duration of response, retain, time to response, complete response, order by, adverse events | source | 7 |
| 43 | CDISC ADaM Application: Does All One-Record-per-Subject Data Belong in ADSL? | Sandra Minjoe | The CDISC (Clinical Data Interchange Standards Consortium) ADaM (Analysis Data Model) team has developed a one-record-per-subject structure called ADSL (Analysis Data Subject Level). The ADaM IG (Implementation Guide) version 1.0 describes many variables that are commonly used in ADSL, suggests that sponsors include additional variables that describe the subject's trial experience, but warns against including too much in this structure. This paper helps implementers determine what one-record-per-subject data should be included in ADSL, describes cases when it would be advisable to instead put this data in another structure, and gives examples/applications of other structures that could be used. Traceability is stressed, both across analysis datasets and back to SDTM data. Some familiarity with SDTM and ADaM is assumed | multivariate analysis, adam dataset, baseline characteristics, sdtm domain, data science, cdisc | source | 10 |
| 44 | CDISC SDTM Conversion in ISS/ISE Studies: Tools | Balaji Ayyappan | CDISC SDTM (Study Data Tabulation Model) conversi on for Integration Summary of Safety (ISS) and Integrated Summary of Efficacy (ISE) is always a challenging job. The most taxing task is the standardization of different non-CDISC compliant raw datasets to CDISC compliant domains and variables for all the legacy studies involving large amount data and diverse systems of data collection. Having faced this challenge year after year, I have been involved in the development of a set of tools and reports to perform and validate the SDTM conversion for ISS/ISE st udies of varying proportion to complete the task in a manner that is efficient and accurate. This paper will describe the functionalities of this utility. The technologies used are SAS, Microsoft EXCEL, VBA and SAS IOM. Knowledge of VBA and SAS IOM fundamentals is a plus, but not a limiting factor |
controlled terminology, excel, cdisc | source | 6 |
| 45 | Checksum Please: A Way to Ensure Data Integrity | Carey G. Smoak, Mario Widel, Sy J. Truong |
Want to ensure data integrity? Want to know if a file has been altered? Checksum, please! Checksums have a variety of applications, such as verifying that an application has been installed correctly and providing a method of verifying whether or not a file has been altered. For example, checksums can be used in a SAS program to verify that a comma delimited (CSV) file has not been altered before importing the CSV file into a SAS dataset. SAS by itself does not make use of checksums, but fortunately all operating systems have some utility available to do it. This paper will provide some background on their uses and concentrate on a particular example |
dataset, data integrity | source | 7 |
| 46 | Clinical Laboratory Results, Old and New Pains | Mario Widel, Scott A. Bahlavooni |
Analyzing clinical trial laboratory results should be a straightforward task; however, a quick perusal of industry papers and presentations contradicts this statement. Issues surfaced over ten years ago continue to plague industry. Further, adoption of the CDISC SDTM Laboratory Test Results (LB) domain adds another level of complexity. In this paper, the authors will readdress old challenges associated with laboratory data including variability of reported units and reference ranges and their impact on analyzability as well as discuss the new task of tabulating laboratory data in a standard model. | controlled terminology, cdisc controlled terminology, clinical trial, cdisc | source | 6 |
| 47 | Coaching the Individual SAS Programmer: Generalist vs. Specialist | Mark Matthews, Sandra Minjoe |
Good managers recognize that all programmers are not created equally, and we can best motivate and reward employees when we recognize them as individuals. One major distinction is that some programmers are generalists and enjoy the variety that comes with different types of studies and analyses, while others are specialists and prefer to hone their skills in one particular area. Difficulties arise when trying to force a specialist into a generalist role, or a generalist into a specialist role. This paper will show managers how to determine whether a programmer is a generalist or a specialist, help them find a good fit, and recommend some resources to increase skills in each area. The two authors have chosen different career paths and share their experiences of generalist and specialist, both good and bad. Mark is a generalist, in management at a CRO (Contract Research Organization), where he has worked with many different clients | sas programmer, excel | source | 5 |
| 48 | Common Misunderstandings about ADaM Implementation | Nate Freimark, Susan J. Kenny, Jack Shostak, John K. Troxell |
The December 2009 release of Version 1.0 of the Analysis Data Model Implementation Guide (ADaMIG), and its endorsement by the United States Food and Drug Administration (FDA), has lead to widespread industry implementation. As sponsors attempt to implement the ADaM standard, there has been some variety in interpretation of aspects of the ADaMIG. The authors describe some common difficulties with implementation of ADaM, and explain best practices. Variables AVALC and DTYPE, the relationship between PARAM and AVAL, and other aspects of the ADaMIG are discussed. In each case, the authors attempt to clarify the intent of the ADaMIG, in order to assist current implementers and to set the stage for improved clarity in the next version of the standard. Keywords: ADaM, ADaMIG, CDISC, FDA | adam dataset, bds, adamig, sdtm domain, flag variable, binary variable, data science, clinical significance, proc contents, data cleaning, adverse events, cdisc | source | 10 |
| 49 | Comparing Datasets: Using PROC COMPARE and Other Helpful Tools | Deb Cassidy | There may be many reasons to compare datasets including working in a double-programming environment, determining if your code revisions worked as expected, and determining the impact from raw data updates. PROC COMPARE works great in many cases and you need nothing more than the lines PROC COMPARE data=old_data comp=new_data; run; However, sometimes you get so many pages of differences that you are at a loss as to where to begin. If you want your datasets to be identical, this paper will cover examples of PROC COMPARE options and other helpful tools to get to everyone's favorite line of output: NOTE: No unequal values were found. All values compared are exactly equal. If you are expecting differences, the paper will cover ways of making it easier to see your differences |
proc step, proc compare, by group processing, numeric variable, create table, proc sql, character variable, missing value, group by | source | 9 |
| 50 | Computing Initial Values for Pharmacokinetic ML Nonlinear Regression via genetic algorithms and parallel genetic algorithms | Francisco Juretig | In the case of no -random effects the estimation can be carried via nonlinear least squares (PROC NLIN) or nonlinear maximum likelihood (PROC NLMIXED). In either case the election of starting values is usually problematic. The derivatives methods will yield an approximate quadratic convergence, as long as the starting values are well chosen. Yet there are two potential problems: if the likelihood is highly irregular, the algorithm will get stuck at local maxima; and if the s tarting values are too far from the optimum then the algorithm may not converge. If any of these two problems arise, then there are two possible solutions: (1) linearizing the model and estimating it via ordinary least squares. (2) Using a big grid to comp ute good initial estimates. The first solution entails the problem of potential high correlation because of the improved dimensionality of the problem and an almost certain bias. The second one is probably better, but requires too much computing power |
proc step, likelihood function, proc mixed, maximum likelihood estimation, regression analysis, fixed effects, proc nlin, correlation, proc reg | source | 11 |
| 51 | Connect with SAS Professionals Around the World with LinkedIn and sasCommunity.org | Charles E. Shipp, Kirk Paul Lafler |
Accelerate your career and professional development with LinkedIn and sasCommunity.org. Establish and manage a professional network of trusted contacts, colleagues and experts. These exciting social networking and collaborative online communities enable users to connect with millions of SAS users worldwide, anytime and anywhere. This presentation explores how to create a LinkedIn profile and social networking content, develop a professional network of friends and colleagues, join special-interest groups, access a Wiki-based web site where anyone can add or change content on any page on the web site, share biographical information between both communities using a built- in widget, exchange ideas in Bloggers Corner, view scheduled and unscheduled events, use a built-in search facility to search for desired wiki-content, collaborate on projects and file sharing, read and respond to specific forum topics, and more | sample | source | 14 |
| 52 | Considerations in the Submission of Exposure Data in an SDTM-Compliant Format | Fred Wood, Jerry Salyers, Richard Lewis |
The submission of data regarding a subject's exposure to a study treatment is critical in making decisions regarding its safety and efficacy. While many sponsors are concerned about getting their data into an SDTM-compliant format, our experience in legacy-data conversion has revealed that many studies don't collect sufficient data to get a reliable assessment of actual exposure. It is also clear that many sponsors are unsure how to properly represent the exposure data they do collect. This paper will discuss the pros and cons of various methods of collecting and representing exposure, as well as some of the challenges sponsors may face in converting data to be consistent with the SDTMIG Exposure (EX) domain | dose, proc freq, sample, adverse events, cdisc | source | 4 |
| 53 | Considerations in the Submission of Pharmacokinetics (PK) Data in an SDTM-Compliant Format | Fred Wood, Peter Schaefer, Richard Lewis |
Pharmacokinetic (PK) data is collected for a variety of purposes in clinical trials. Some of the first-in-human trials provide absorption and elimination data for comparisons with data collected in non-human species. PK data is also used to determine details of the dosing regimen, such as dose amount and frequency; for therapeutic benefits; and for bioequivalence testing for alternative dose formulations. This paper focuses on some of the challenges associated with managing the collected concentration data and the subsequent calculation of PK parameters. Examples of how the collected data map into the SDTM domains representing pharmacokinetic concentrations and pharmacokinetic parameters datasets, as well as the use of RELREC are presented. In addition, a brief overview of the status of development of CDISC controlled terminology for PK parameters and PK- parameter units is provided | pk parameter, elapsed time, clinical trial, controlled terminology, sample, proc freq, cdisc controlled terminology, cdisc | source | 8 |
| 54 | Consulting: Critical Success Factors | Kirk Paul Lafler, Charles E. Shipp |
The consultants of today require different skills than the consultants of yesterday. Today's consultants are just as likely to have an MBA degree as a technical degree. They tackle a wide variety of business and technical problems and provide solutions for their clients. This presentation describes the consulting industry from the perspective of these different types of organizations (for example, Big Five accounting firms or organizations that could be described as elite, boutique, independent, or IT). Specific attention is given to the critical success factors needed by today's and tomorrow's consultants | sas 9, sas base | source | 8 |
| 55 | Could Have, Would Have, Should Have! Adopting Good Programming Standards, Not Practices, to Survive An Audit. | Vincent J. Amoruccio | The primary purpose of a Pharmaceutical is to develop and market drugs which treat or prevent disease safely and efficaciously. A major step in the licensing of a drug, in particular in the United States, is the inevitable audit by the FDA. While the FDA suggests that adherence with Good Clinical Practices ("GCP") is a critical requirement, it falls short in providing programming standards for the SAS deliverables of a submission. SDTM and ADaM are solutions to standardizing the review of data, but not the programs themselves. The lack of regulations leaves programmers unmanaged and exposed to risk when asked to deliver SAS Programs to the FDA during a submission. While many programmers are addressing this through groups, papers, websites, and blogs there are no formal Good Programming Practices ("GPP"). Until there is, programmers must create, manage, and defend their own programming choices during an audit | pharmaceutical industry, clinical trial, adam dataset, proc sql, proc step, data cleaning, cdisc | source | 17 |
| 56 | Creating an Integrated Summary of Safety Database using CDISC ADaM : Challenges, Tips and Things to Watch Out | Rajkumar Sharma | Most individual trials are not powered to identify tre nds and rare adverse events. By combining trails, rare events can be detected and a better pict ure can be obtained of the general sa fety profile of a drug. Creating an integrated safety database by pooling studies toge ther can facilitate this. Pooling information across multiple studies into an integrated safety database generally requires that relevant data from all studies have the same structure and metadata stan dards. Since, CDISC structure is better defined; it can be used to create integrated safety database with ease. However, there are challenges and issues to watch out for. This paper will cover in detail on how to create integr ated safety database, challenges associated with it, things to watch out for and tips | adam dataset, sdtm domain, adverse events, proc contents, proc step, controlled terminology, date variable, imputation, cdisc | source | 7 |
| 57 | Creating Analysis Data Marts from SDTM Warehouses | Frank L. Roediger | Getting clinical trial data into SDTM (Study Data Tabulation Model) domains is only the first hurdle in the race. The next obstacle is being able to combine separate trials' SDTM domains so that they can be analyzed. On the surface, the task of combining SDTM data sets is straightforward - simply stack each trial's domain with the corresponding domain from all the other trials. However, as for any other type of data warehouse that is loaded over time, careful attention needs to be given to assure that strict version control is in place for field attributes, controlled terminologies, and thesaurus-based data such as MedDRA. This paper describes a two-step approach that has been used to build SDTM warehouses and then to extract analysis data marts from them. The first step is to create two comprehensive warehouses: one for ongoing trials and another for completed trials | sdtm domain, txt, macro variable, dataset, clinical research, data cleaning, cdisc | source | 9 |
| 58 | Creating Define.pdf with SAS Version 9.3 ODS RTF | Elizabeth Li, Carl Chesbrough |
It is becoming more common for regulatory submissions to include define.xml - the data definition documents for Study Data Tabulations Model (SDTM) data, Analysis Data Model (ADaM) data, and even legacy data. Although define.xml documents can help regulatory reviewers to navigate submission datasets, documents and variable derivations, they usually do not print out properly on paper. One solution is to generate a define.pdf document with the same content as the define.xml. The portable document format (PDF) file includes bookmarks and hyperlinks to facilitate online review, and it can also be printed out for hardcopy review. Providing define.pdf documents can help sponsors remove obstacles to the review of their regulatory submissions. This paper presents tips for using SAS Version 9.3 Output Delivery System (ODS) rich text format (RTF) to generate an RTF file, and then use Acrobat's PDF Maker to convert it to a define.pdf document |
macro variable, ods pdf, proc step, adverse events, ods rtf, proc template, output delivery system, sample, proc report, regulatory submission, verbatim term, cdisc | source | 36 |
| 59 | Creating Metadata Driven Macros to Gain Dynamism and Reduce Complexity in Macro Calls | Fernando Enriquez | It often happens in clinical programming that we have to cr eate standard derived data sets for several studies. It is always a good idea to create a macro and use it for all studies. The problem comes when there are too many parameters to consider for the study; la rge lists of changing values for parameters to be defined in the macro call, variable names changing in source data sets across studie s, different categories to be derived or different value ranges for creating categories in the derived data sets. Many more problems can be listed and here is where metadata is useful to resolve such complexity when creating macro calls | macro call, macro variable, raw data, txt | source | 5 |
| 60 | Creating SAS Report Outline Using the Output Delivery System for Online Review | Sue X. Zhang | The destination function of the output delivery system (ODS) RTF or PDF in SAS permits the user to create linked table of contents (TOC) pages or bookmarks that, with a single mouse click, can take the user directly to the desired SAS output. It allows the user to easily move around the document online via the TOC pages or the bookmarks instead of going back and forth and scrolling through the long SAS report. This paper presents step-by-step procedures for applying ODS CONTENTS and TOC_DATA options and ODS PROCLABEL statement to generate the informative TOC pages and the bookmarks about the SAS report for fast online review. Methods are detailed for 1. Generating the table titles in the TOC pages and the Document Map in Word 2. Presenting the data set names in the TOC pages and the Document Map in Word for the data set documentation 3 |
proc compare, proc step, data cleaning, clinical trial | source | 11 |
| 61 | Creating the Time to Event ADaM Dataset: The Nuts and Bolts | Nancy Brucken, Paul K. Slagle |
The ADaM Basic Data Structure can be used to create far more than just laboratory and vital signs analysis datasets. Often, the biggest challenge is the development of efficacy datasets, and of the commonly-used efficacy datasets, creation of a time-to-event (TTE) dataset presents many interesting problems. These TTE datasets are frequently used in survival analysis, for example, to generate Kaplan-Meier curves for oncology reports. As a continuation of this series, we will provide directions for creating the ADaM-based TTE dataset, as well as help in using that structure to support both validation and statistical review of the results. Prior experience with ADSL and creation of other BDS datasets is expected | progression-free survival, vital signs, data science, survival analysis, adam dataset, adverse events, km analysis, cdisc | source | 7 |
| 62 | Cross-Platform Data Migration in a Clinical Environment | Frederick E. Pratter, Srinivas Chittela |
Moving SAS datasets, catalogs, macro libraries and other research data from one platform to another is sufficiently complex in itself, but adding the FDA requirement that all clinical data must continue to be available for years after the study is completed makes the process even more so. This paper relates the steps that were required to move 50,000+ SAS datasets in over 3,000 libraries from outdated HP-UX hardware to Linux. The files were created in Windows and UNIX using V6, V8 and V9 SAS. Each data type required individual handling, and datasets needed a different treatment from catalogs. The procedures developed and the results obtained should be of interest to any organization confronting this kind of cross-platform migration | proc step, dataset, sample, clinical data | source | 6 |
| 63 | Database Tectonics: Assessing Drift in Analysis Data | Brian P. Fairfield-Carter, Jasmin Fredette |
In long-term projects, particularly those with separate analyses conducted at major study milestones (i.e. at the end of acute-treatment and long-term extension phases), project documentation needs to account for changes to the analysis data resulting from evolving data standards, as well as those resulting from changes to the underlying raw data. The database at the time of the final/extension lock includes records from acute-phase visits, and because of 'data drift' (changes to raw data and to derivation logic) these acute-phase records may differ from those at the time of the acute lock. Since they may ultimately effect statistical inference, these differences need to be documented (often retrospectively), but the process is complicated because (1) differences resulting from changes to the raw data are confounded with those resulting from changes to data-handling rules and derivation logic, and (2) differences in analysis data accumulate across dependency layers (i.e | raw data, adam dataset, dose | source | 10 |
| 64 | Determining and Reporting Significant Decimal Places for Continuous Data in Mixed Form | Gary E. Moore | Data of mixed precision is common in clinical trials. Examples of this mixed form are Laboratory, ECG, and Vitals data, where a parameter or type variable defines different results. These results are often recorded to significant decimals appropriate to the data type as determined by the site collecting the data. But, the results are often reported in a common decimal place that may be inappropriate across all of the data types. This paper presents a simple approach for determining significant decimal places for continuous data collected in mixed form and reporting the appropriate significant decimal places across all data types | character variable, standard deviation | source | 6 |
| 65 | Diverse Report Generation With PROC REPORT | Chris Speck | Automation is often the goal of SAS programming. If we could just hit "Submit" and watch our program generate all our tables and listings while making the right decisions at run time we could get a lot more accomplished. Of course, with the SAS macro facility, we can already do this…up to a point. We can equip our macros with macro logic, we can feed them different parameters, and then watch as they produce one output after another. This works great when all your outputs are based on the same data set and require the same number of columns. But what if they don't? What if you need to automate report generation from a large number of different data sets? What if you must allow for any number of columns? Developing such a program using macro logic would be cumbersome indeed. You would need %IF %THEN blocks for every contingency, and your program would get so bogged down in logic that you'd be better off without automation at all | proc report, proc step, macro variable, proc sql, macro call, medical history, safety population, %if-%then-%else, macro facility, adverse events | source | 6 |
| 66 | Does NODUPKEY Select the First Record in a By Group? | David W. Franklin | Does the NODUPKEY option in the SORT procedure always select the first observation in a group of variables? There are some who say it does and some that say it does not. This paper looks into this question, with examples, and shows that the NODUPKEY has really no effect on whether the first observation in a group of data gets selected, but does find that there are two other options that effect whether this happens and presents the effects of these options. Because these two options are rarely specified in programming and the default values shipped with SAS are almost always used, if these values are changed, unexpected results will happen |
proc sort, proc step | source | 3 |
| 67 | Doing More with the Display Manager: From Editor to ViewTable - Options and Tools You Should Know | Arthur L. Carpenter | If you have used the interactive interface for SAS you have most likely used the Display Manager. As it ships, the Display Manager is very powerful and yet fairly easy to use with a minimal learning curve for the new user. Because it is functional 'right out of the box', most users do very little to customize the interface. Thi s is a shame, because the Display Manager contains a great many hidden opportunities to make it even more powerful, even easier to use, and customized for your way of using the interface. The Display Manager builds a variety of windows, screens, and dialogue boxes to facilitate communication between SAS, the Operating System, and the user. For each of the five primary windows and extending to the dozens of secondary windows there are options that control the content, display, and level of interaction. Op tions have defaults and a majority of these can be easily changed to suite your needs | proc step, dataset, macro call, proc print, macro facility, macro variable, macro put, macro quoting function | source | 17 |
| 68 | Don't Gamble with Your Output: How to Use Microsoft Formats with ODS | Cynthia L. Zender | Are you frustrated when EXCEL does not use your SAS formats for number cells? Do you lose leading zeros on ZIP codes or ID numbers? Does your character variable turn into a number in EXCEL? Don't gamble with your output! Learn how to use the HTMLSTYLE and TAGATTR style attributes to send Microsoft formats from SAS to EXCEL. This paper provides an overview of how you can use the HTMLSTYLE attribute with HTML-based destinations and the TAGATTR attribute with the TAGSETS.EXCELXP destination to send Microsoft formats from SAS to EXCEL using the Output Delivery System (ODS) STYLE= overrides. Learn how to figure out what Microsoft format to use and how to apply the format appropriately with ODS. A job aid is included in the paper; it lists some of the most common Microsoft formats used for numeric data. The examples in this paper demonstrate PROC PRINT, PROC REPORT, and PROC TABULATE coding techniques |
excel, proc step, ods xml, proc report, ods html, proc print, date variable, format statement, character variable, sysdate9, user-defined format, numeric variable, proc tabulate, xls, sas output, output delivery system, dataset | source | 30 |
| 69 | Don't Have a "Week" Report | Barbara Ross | Often we need to generate reports on an hourly, daily, and weekly basis. Hourly and daily are pretty straightforward, but when it comes to week, there are many ways to define it, code for it, and display it. This paper attempts to cover a lot the various methods of classifying weeks within your longitudinal data. It will show how to use the SAS WEEK function and formats to enumerate your weeks, the INTNX function to apply date range labels and specify non- traditional weeks, and other helpful tips such as filling in sparse summary tables and placing date ranges in your title. The topics covered are appropriate for novice SAS users | datepart, week, date variable | source | 6 |
| 70 | Easy-to-use Macros to Create a Line Plot with Error Bars Including Functions of Automated Jittering and Adjusting Axis Ranges | Andrew Miskell, Peixin Sun, Yufei Du |
This paper presents three macros to create a line plot with error bars that includes automatic jittering and adjusting axis ranges within the plot. The purpose of these three macros is 1) to create a mean or median line plot with error bar of standard error, standard deviation, or range that has individual panels for each value of a parameter and also pages by a different parameter; 2) to automatically jitter the x-axis variable based on the number of lines in the graph; 3) to dynamically define axis ranges that are identical within each page-by parameter yet vary across page-by parameters with options to incorporate up to two reference lines in the range. The jittering and the axis range macros are stand alone macros and can be used apart from the first macro as well. SAS version 9.1 is used for these macros. Windows platform needed and only tested on version 9.1 and above. Basic SAS skills with understanding of macro calls needed | line chart, macro loop, macro definition, %if-%then-%else, macro variable, macro parameter, proc step, proc calis, proc format, standard deviation, in=, proc greplay, sample, proc gplot | source | 41 |
| 71 | Efficiently Trim Character Variable Lengths to Fit Data, Reduce Dataset Size | Wayne (Weizhen) Zhong | In environments where saving datasets with the (COMPRESS=yes) option is not permitted, unnecessarily large datasets clog up hard drives and increase processing time, costing patience and efficiency alike. Somewhere between the extremes of simply defaulting character variables to 200 characters or spending time to manually set lengths - risking truncation when data updates - there is a happy middle ground to automate the process: always let the length be as short as it can without truncation | character variable, macro variable, length statement, in=, out=, proc sql, %if-%then-%else, macro definition | source | 7 |
| 72 | Estimating Risk in the Presence of Unreported Zeros in the Data | Brandon Fleming | When evaluating risk of injury (exposure) using sample data alone, it is desirable to have as the denominator the total population size. However, if the sample itself contains only information about the frequency of exposure (e.g. frequency of N=1 exposure, 2, 3, etc.), and those who have never been exposed would not be entered into th e database, how is one to ascertain the unreported zeros (frequency of N=0)? This paper explores the use of PROC NLMIXED in estimating the risk using the truncated Poisson assumption. The performances of thr ee candidate estimators are analyzed with simulated data that contains frequency information. PROC NLMIXED is used first to identify the truncated Poisson mean, and then to estimate the frequency of N=0, i.e. those without injury o r exposure (unreported zeros) |
poisson distribution, proc freq, proc step, likelihood function, sample, maximum likelihood estimation, proc mixed, sample size, binomial distribution | source | 7 |
| 73 | EXACTing a Price: Compute Fisher-s Exact Test P-values Only When Needed | Robert D. Abelson | Many times when p-values are computed for a categorical analysis, it is not known in advance whether an exact or an asymptotic p-value is needed, so both are computed using the EXACT option in PROC FREQ. Sometimes SAS issues a warning that "Computing exact p-values may require much time and memory." It would be helpful to compute exact p-values only when they are needed. The use of Fisher's Exact Test is recommended when expected cell counts of less than 5 comprise 25% or more of a table. Some statisticians are more conservative, favoring a lower cutoff percentage. Also, while many statisticians use the Pearson chi-square p-values when exact p-values are not needed, some prefer the likelihood ratio chi-square |
fisher exact test, exact test, macro loop, %if-%then-%else, create table, likelihood function, macro definition, proc step, proc freq, proc sql | source | 6 |
| 74 | Experience of Generating an XML file and Uploading Serious and Frequent Adverse Events to ClinicalTrials.gov | Juan Wu, Min Lai |
The Food and Drug Administration Amendments Act (FDAAA) requires that basic results for applicable clinical trials for drugs, devices, and biologics be posted to ClinicalTrials.gov after September 27, 2008, and serious adverse events (SAE) and frequent adverse events (FAE) be posted to ClinicalTrials.gov after Sep 27, 2009. To comply with the requirements, a cross functional team was established at Medtronic to implement the necessary infrastructure. While regulatory or clinical staff performs the data entry for basic results posting using a Web-based Results Registration System at Medtronic, our statistical programming team produced validated SAS macros and generated an XML file for posting serious and frequent adverse events to ClinicalTrials.gov. The posting process also ensures the SAE/FAE results are published to ClinicalTrials.gov accurately and efficiently | adverse events, serious adverse event, system organ class, clinical trial, proc freq, group by, sas programmer | source | 9 |
| 75 | Experiences in Leading a Company-Wide First CDISC Filing from a Programming Perspective | Sho-Rong Lee | The FDA first began accepting CDISC submissions about a decade ago. Some companies have CDISC filing experience, others are in the active preparation phase, and there are others currently evaluating their capacity to launch the processes. Many factors need to be considered prior to launching a CDISC filing: support from management and filing team, adoption of SDTM data mapping and ADaM analysis data derivations, CDISC awareness training in various functions, eSubmission CRT metadata documents and structure, annotated CRF, and Controlled Terminology, just to name a few. This paper describes an approach to initiating a company-wide first CDISC submission, the design and construction of CDISC tools and processes, and the discussion of challenges, successes, and lessons-learned. The goal is to present insights gleaned from the recent CDISC submission experience of Genentech, a Member of the Roche Group, thereby benefiting the industry | clinical trial, data standard, data transformation, clinical programming, excel, cdisc | source | 6 |
| 76 | Exploring DATA Step Merges and PROC SQL Joins | Kirk Paul Lafler | Explore the various DATA STEP merge and PROC SQL join processes. This presentation examines the similarities and differences between each, and provides examples of effective coding techniques. Attendees examine the objectives and principles behind merging and joining, as well as the coding constructs associated with inner and outer merges and joins, and hash techniques |
hash table, proc sql, proc step, lookup, inner join, if-then-else, create table, right join | source | 14 |
| 77 | Export SAS Data to Excel in SAS Drug Development | Chun Feng, Xiaopeng Li |
Exporting SAS data to EXCEL is a common task for programmers. SAS 9 provides multiple powerful techniques to output SAS data to EXCEL, such as PROC EXPORT, LIBNAME engine, output delivery system (ODS), dynamic data exchange (DDE), and ExcelXP tagset. This paper discusses capabilities and advantages of each technique in SAS Drug Development (SDD), a relatively new regulatory-compliant SAS system for clinical research. With new interface, Java powered editor, and web-based system, SDD performs differently than PC SAS1 in some aspects to create an EXCEL file. New convenient ways are available in SDD, including outputting from data explorer and defining output data table as an EXCEL file in data steps. This paper will greatly help SDD users to efficiently export SAS data to EXCEL |
excel, proc export, libname engine, sas 9, dataset, proc step, xls, macro variable, ods csv, ods html, clinical research, work library, sample | source | 10 |
| 78 | Figure Out Your Programming Logic Errors via DATA Step Debugger | Wuchen Zhao | Programming errors can be categorized into syntax errors and logic errors. Syntax errors can be easily fixed because these types of errors can be detected by SAS during the DATA STEP compilation phase and SAS will stop the program to generate an error report in the log window. Unlike syntax errors, logic errors are difficult to be found and/or corrected since programs with logic errors often operate correctly but result in unexpected results. One of the useful tools to repair logic errors is to utilize DATA STEP Debugger, which allows you to see the contents of the Program Data Vector (PDV) during the DATA STEP execution. With the debugger running, you will be able to monitor and update data values by using data debugging commands which will help you to understand where the problem is so that you will be able to fix the error. This paper will illustrate some debugging techniques by using DATA STEP Debugger |
sas log, execution phase | source | 8 |
| 79 | Formats in another format | Bettina Ernholt Nielsen | Have you ever thought about alternative ways of using SAS formats in your programs? Did you ever use a format to do a calculation or to round your numbers based on the initial value? Often we use formats to read data, display values, group our data or do conversions between numeric and character, but formats can also be used to simplify programs that would have been somewhat complex or lengthy. By carefully constructing our formats to fit our needs we can utilize the powerful SAS format function to accomplish this | format statement, sample | source | 4 |
| 80 | From InForm EDC Data to SAS Datasets using SAS Clinical Data Integration - Real Time | Jitesh Nagaria | In the pharmaceutical industry, getting the real time data from EDC systems into SAS Datasets is still the biggest challenge. Companies spend significant amount of time and resources in synchronizing data from EDC systems to SAS datasets. As the industry becomes more and more competitive, having the right data in hand for analysis as soon as it has been entered is crucial and challenging. This paper talks about how to integrate and synchronize data from InForm EDC system through SAS Clinical Data Integration and convert it into SAS Datasets. It will describe the process flow and technical details required to set up the connection between SAS Clinical Data Integration and InForm EDC trial. It will also discuss how to fetch the metadata, clinical data in the form of ODM XML, parse the ODM XML and produce the SAS Datasets for each clinical domain. The integration involves technologies like SOAP, XML, XSL, SAS programs and SAS Clinical Standard Toolkit | dataset, proc step, inner join, macro definition, web service, macro variable, clinical data, edc, proc sql | source | 12 |
| 81 | Generating SUPPQUAL Domains From SDTM-Plus Domains | John R. Gerlach, Glenn O'Brien |
Generating Supplemental (SUPPQUAL) domains is a staple component of any CDISC conversion project. In fact, many of the SDTM domains often have a respective SUPPQUAL domain, which can be just as challenging to produce, as well as being considerably larger in size. Even if there is an SDTM-Plus domain that contains the variables intended for a respective SUPPQUAL domain, the task of creating the respective SUPPQUAL domain can still be quite tedious, as well as error prone. Obviously, it would be better to automate this process that guarantees compliance and accuracy. This paper explains a SAS utility for generating SUPPQUAL domains from SDTM-Plus domains | proc sql, macro variable, libname statement, proc step, label statement, adverse events, macro loop, macro function, cdisc | source | 6 |
| 82 | Get SASsy with PROC SQL | Amie Bissonett | As a data analyst for genetic clinical research, I was often working with familial data connecting parents with their children and looking for trends. When I realized the complexity of this programming could be accomplished quite easily with the SQL Procedure, I started learning the syntax and I've been a PROC SQL fan ever since. I've been suggesting SQL solutions to colleagues for their programming tasks for years and now I'm writing a paper to share the power of PROC SQL with you. This paper will give you some simple PROC SQL steps to get you started and some more complex steps to show you a few of the ways that PROC SQL can make your programs simpler and more efficient |
proc sql, proc step, create table, macro variable, group by, inner join, select, full join, by group processing, right join, adverse events, proc freq | source | 12 |
| 83 | Getting Your Data in Shape With PROC TRANSPOSE | Nancy Brucken | How many times have you been able to transpose your data sets successfully on the first try with PROC TRANSPOSE? With the increasing use of CDISC SDTM and ADaM data sets, we frequently need to go from "narrow" to "wide" data sets, as when transposing lab data for a listing, or from "wide" to "narrow" data sets, as when transposing vital signs data from its original source to an SDTM VS domain. This paper explores some of the more commonly-used features of PROC TRANSPOSE, and also covers several situations where PROC TRANSPOSE cannot easily handle the required data set restructuring |
proc transpose, proc step, numeric variable, by group processing, cdisc | source | 11 |
| 84 | Gilding the Lily: Boutique Programming in TAGSETS.RTF | Rohini Rao, Paul D. Hamilton |
PROC REPORT has long been a powerful and flexible tool in clinical programming for producing tables and listings. The ODS TAGSETS.RTF destination was introduced in SAS version 9.2, enabling programmers to produce higher quality output with less effort. This paper demonstrates a few tips and tricks to subtly enhance the æsthetics of the reports. Topics covered include: the use of decimal tabs to properly align numerical output; the usage of Unicode to insert special characters; the deletion of excess blank lines at the top and bottom of a page; the insertion of page-specific footnotes; varying the number of lines per page to improve the flow of output; and the repetition of a header row when the body of the section spans multiple pages. SAS version 9.2 on the Windows platform is used in this paper. It is catered towards an audience with an intermediate level of SAS and ODS knowledge |
vital signs, adverse events, clinical trial, proc step, sample | source | 9 |
| 85 | Giving Data a Voice: Partnering with Medical Writing for Best Reporting Practices | Katherine Troyer, Brit Minor |
An active partnership among programmers, statisticians, and medical writers throughout the reporting process promotes efficiency and quality, and assures that the product meets both scientific objectives and regulatory standards. Programmers and medical writers have essential, but significantly non-overlapping, areas of expertise, and when their functions are highly compartmentalized, they apply their skills at separate steps in the reporting procedure. Furthermore, some reporting deliverables, such as client-specific summaries of safety or other data, are produced entirely by programmers. Statisticians interact with both functional groups, and frequently can assist with communication; however, the role and timing of statistical input can vary widely among institutions and projects. Problems may arise when programming and medical writing function too independently. For example, an analysis program design may be at odds with regulatory requirements or scientific objectives | trial elements, clinical trial, csr, adverse events, data science | source | 8 |
| 86 | Graphical Outputs for Efficacy Analyses Using SAS/GRAPH SG Procedures | David A Collins | Graphical representation of treatment effect is typically easier to understand as compared to a statistical analysis table. The rollout of SAS 9.2 has provided a variety of new options to create sophisticated analytical displays. Using PROC TEMPLATE and SAS/GRAPH SG procedures, one can produce graphical outputs of efficacy data for decision making purposes. A simulated Proof-of-Concept (PoC) efficacy trial is analyzed for illustration purposes |
percent change from baseline, change from baseline, box plot, forest plot, proc step, proc sgplot, confidence interval, anova | source | 7 |
| 87 | Graphs made easy with ODS Graphics Designer | Kevin Lee | Graphs can provide the visual patterns and clarities that are not apparent in tables and listings, but sometimes it takes too long to create ones. Now, The ODS Graphics Designer makes it much easier. The paper is intended for Clinical Trial SAS programmers who are interested in creating graphs using ODS Graphics Designer. The ODS Graphics Designer is a SAS/GRAPH GUI based interactive tool. The codes in ODS Graphics Designer are based on the Graph Template Language (GTL), but SAS programmers can create graphs using its point-and-click interaction without any programming. The ODS Graphics Designer allows SAS programmers to create many kinds of graphs such as scatter plots, series plots, step plot, histogram, box and more. The paper will show how to start the ODS Graphics Designer in SAS. The paper will also show how easy to create simple or complex graphs using the designer and how to enhance graphs using other features such as legends, cell properties, plot properties and so on |
sas programmer, class variable, scatter plot | source | 12 |
| 88 | Harnessing the Power of SAS ISO 8601 Informats, Formats, and the CALL IS8601_CONVERT Routine | Kim M. Wilson | Clinical Data Interchange Standards Consortium (CDISC) is a data standards group that governs clinical research around the world. This data consists of many date, time, DATETIME, duration, and interval values that must be expressed in a consistent manner across many organizations. The International Organization for Standardization (ISO) approved the ISO 8601 standard for representing dates and times, and this standard is compliant with CDISC. This paper addresses how to create and manage ISO 8601 compliant date, time, and DATETIME values in a CDISC environment. The paper also discusses the computation of durations and intervals. Examples that use the SAS call routine CALL IS8601_CONVERT and other programming logic are also provided, along with helpful tips and suggestions. In addition, the paper presents solutions to some common date and time problems, such as handling missing date components |
datetime, time, date variable, sysdate9, sas log, clinical trial, datetime variable, cdisc | source | 15 |
| 89 | How Readable and Comprehensible Is a SAS Program? A Programmatic Approach to Getting an Insight into a Program | Rajesh Lal, Raghavender Ranga |
In any programming language, there are general guidelines for writing "better" programs. Well-written programs are easy to re-use, modify, and comprehend. SAS programmers commonly have guidelines for indentation, program headers, comments, dead code avoidance, efficient coding, etc. It would be great if we could gauge a SAS program's quality by quantifying various factors and generalize for individual programming styles. This paper aims to quantify various qualitative characteristics of a SAS program using Perl regular expressions, and provide insight into a SAS program. This utility, when used across a large project, can serve as a tool to gauge the quality of programs and help the project lead take any corrective measures to ensure that SAS programs are well written, easily comprehensible, well documented and efficient | proc step, flag variable | source | 12 |
| 90 | How to determine carriage controls in SAS transfers? | Eric Kammer, Tiantian Sun |
It is not uncommon for the pharmaceutical industry to outsource data management activities. However, when the data comes back to the sponsor company there are sometimes hidden surprises that cause problems in the SAS data sets that are transferred back from the CRO. In particular sometimes carriage controls are hidden in the SAS data sets from the transfers that occur or from the database applications used at the CRO. A technique to identify the carriage controls in data will be presented in this paper | dataset, macro definition | source | 5 |
| 91 | How to keep the project on budget in the clinical trial study | Kevin Lee | If a SAS programmer is responsible for the budget of a clinical trial study in the biometric department, he or she will need to watch and keep the project on budget throughout the study. The paper is intended for those who are interested in budgeting in the biometric department. It will discuss the reasons and ramifications for going over budget during the study such as an incorrect budget, improper resourcing, poor execution, incorrect deliverables and miscommunication. The paper will also discuss the ways to reduce the costs and save a budget. The paper will be based on CDISC clinical trial setting | clinical trial, sas programmer, cdisc | source | 4 |
| 92 | Identifying and Verifying Treatment-Emergent Adverse Events and Concomitant Medications by Date Specificity | Tom Santopoli | In clinical trials, treatment-emergent adverse events and concomitant medications are often identified in a similar manner: Event start and end dates are compared to reference start and end dates. However, partial dates can add many complications. The Statistical Analysis Plan (SAP) provides instruction for the handling of partial dates. This presentation will offer a method for using date specificity as a tool to address potential shortcomings of the methodology provided in the SAP | adverse events, treatment-emergent adverse event, concomitant medications, imputation, adam dataset, cdisc | source | 5 |
| 93 | If You Can't Learn It From A Book, Why Are You Reading This? | Stephen M. Noga | People management, an inexact science if ever there was one, is often thrust upon individuals as they move up the corporate ladder. With promotion comes added responsibility whether a person is ready for it or not. How is a person supposed to learn to manage other people? Seminars, and online courses, and books, Oh My! The choices are numerous and chances are that knowledge will be obtained. However, how did you learn to deal with missing data where none was expected? You experienced the frustration after your program produced erroneous results and you learned how to prepare for this situation the next time. Management is no different. Welcome to my observations from twenty-one years of managing SAS programmers | sas programmer, statistical programmer | source | 6 |
| 94 | Importing Excel File using Microsoft Access in SAS | Ajay Gupta | In Pharmaceuticals/CRO industries, EXCEL files are widely use for data storage. There are different methods such as PROC IMPORT\LIBNAME to convert EXCEL file in SAS dataset. But, due to technical limitations in SAS these traditional methods might create missing values while reading the columns in EXCEL file containing mixed data types (both numeric and character). Especially, when the EXCEL file is large then it is hard to debug the loss of data. Also, if the validation programmer is using the same traditional method to read the EXCEL file then there is a possibility that datasets will pass the validation and further use into production even there is loss of data. This will affect the overall quality of deliverable and also increase the cost. To overcome this issue and provide an alternative method for validation, there is desperate need for new method to read EXCEL. This paper will introduce a unique method to read EXCEL using Microsoft Access in SAS |
excel, proc import, dataset, macro call, proc step, data cleaning, data step | source | 8 |
| 95 | Innovative Techniques: Doing More with Loops and Arrays | Arthur L. Carpenter | DO loops and ARRAY statements are common tools in the DATA STEP. Together they allow us to iteratively process large amounts of data with a minimum amount of code. You have used loops and arrays dozens of times, but do you use them effectively? Do you take advantage of their full potential? Do you understand what is really taking place when you include these statements in your program? Through a series of examples let's look at some techniques that utilize DO loops and ARRAYs. As we discuss the techniques shown in the examples we will also examine the use of the loops and the arrays by highlighting some of the advanced capabilities of these statements. Included are examples of DO and ARRAY statement shortcuts and 'extras', the DOW loop, transposing data, processing across observations, key indexing, creating a stack, and others |
do loop, hash table, conditional do loop, set statement, temporary array, array, character variable, numeric variable, end= option, moving average, point= option, array bounds, mod, stop, lookup | source | 13 |
| 96 | Interesting Technical Mini-Bytes of Base SAS - From DATA Step to Macros | Airaha Chelvakkanthan Manickam | Over the last several decades, SAS has improved and added thousands of features to Base SAS. It is almost impossible for someone to know all of the tricks and tips of Base SAS. This paper highlights some useful tips and advanced tricks of Base SAS that I have encountered during my experience working with SAS. These technical mini-bytes are divided into two sections-DATA STEP mini-bytes and macro mini-bytes. In this paper, I present interesting examples involving common and advanced DATA STEP executions such as CALL SET, dynamically accessing SAS data sets, and PERL pattern matching. Similarly, simple to advanced macro tips including CALL EXECUTE and QUOTE functions in macros are discussed |
data step, call execute, sas base, set statement, macro variable, raw data, proc step, put statement, sample, data validation rules, pharmaceutical industry, reference data, variable list, proc print, by group processing, key=, macro call, macro definition, master data management, proc sql | source | 13 |
| 97 | Ir-RECIST-ible | Sanket Kale, Jeffrey Moran |
The majority of oncology trials involving solid tumors follow RECIST (Response Evaluation Criteria in Solid Tumors) guidelines for tumor evaluation in order to assess intervention efficacy. RECIST provides a standard method for determining whether patients improve, remain stable, or worsen in response to therapy. RECIST requires collecting and tracking a fairly large number of attributes about each of several tumors in every patient. Unfortunately, even small errors or inconsistencies in clinical procedure or data collection, both of which are common in a clinical trial setting, can make data unusable for RECIST response determination. This paper discusses key problems that can negatively impact the use of data for RECIST response determination and describes integrity checks that can help identify and correct these problems. These integrity checks can be used in data cleaning to ensure that the maximum pool of data is available for determining response to treatment | baseline, data cleaning | source | 4 |
| 98 | iRobot: Listing Creator | David Gray, Zhuo Chen, Suneela Gogineni |
source | 13 | ||
| 99 | Is the Legend in your SAS/Graph Output Still Telling the Right Story? | Alice M. Cheng, Justina M. Flavin |
In clinical studies, researchers are often interested in the effect of treatment over time for multiple treatments or dosing groups. Usually, in a graphical report, the measurement of treatment effect is on the vertical axis and a second factor, such as time or visit, on the horizontal axis. Multiple lines are displayed in the same figure; each line represents a third factor, such as treatment or dosing group. It is critical that the line appearance (color, symbol and style) are consistent throughout the entire clinical report, as well as, across clinical reports from related studies. Flavin and Carpenter (2004) showed that the GPLOT procedure, by default, did not guarantee consistency in line appearances. They provided macro and non-macro solutions to this problem. With the introduction of Statistical Graphics (SG) in SAS v9.3, there are multiple approaches to resolve this problem |
proc sgplot, class variable, proc gplot, graph template language, proc step | source | 12 |
| 100 | Is Your Failed Macro Due To Misjudged "Timing"? | Arthur X. Li | The SAS macro facility, which includes macro variables and macro programs, is the most useful tool to develop your own applications. Beginning SAS programmers often don't realize that the most important function in learning a macro program is understanding the macro language processing rather than just learning the syntax. The lack of understanding includes how SAS statements are transferred from the input stack to the macro processor and the DATA STEP compiler, what role the macro processor plays during this process, and when best to utilize the interface to interact with the macro facility during the DATA STEP execution. In this talk, these issues are addressed via creating simple macro applications step-by-step |
macro variable, symbol table, local symbol table, macro facility, macro definition, global symbol table, call symput, binary variable, macro loop, macro call, %if-%then-%else, call execute, macro trigger, &variable, macro put, if-then-else, call symputx, sas log, proc step, chi-square test, put statement, character functions, macro function, do loop, run, compilation phase, execution phase, missing value, macro parameter, %macro parameters, proc sql | source | 22 |
| 101 | Let's compare two SAS libraries! | Kavitha Madduri | Here is a typical scenario that we come across very often - you have twelve datasets in one library and twenty datasets in another library. You want answer to below questions: a) What datasets are in one library and not the other? b) For the common datasets: i. Is the number of observations the same? ii. Are the variable attributes the same? iii. Are there any data differences between the datasets, if the number of observations is the same? One can write SAS code to answer each of the questions above. But these situations are so common that you do not want to spend time every time to determine the differences between the two SAS libraries. It would be easy if we have a SAS macro that would do it automatically for us. This paper introduces COMPARE_LIB macro to compare datasets in two SAS libraries and produces reports to answer each question mentioned above. This macro would work on SAS version 8 and above | proc step, proc compare, macro call, sample, proc sql, dictionary tables, temporary dataset, macro loop | source | 10 |
| 102 | Leverage SAS/Genetics Package to perform Biomarker Drug Response Analysis on Pharmacogenomic Data | Deepali Gupta, Shirish Nalavade |
The primary objective of genetic analysis is to infer how an individual's genetic profile affects subject's resp onse to drug treatment and moreover how safe and effective treatment dosage varies depending on their respective genetic makeup. ALLELE procedure analysis serve to characterize the markers themselves or the population from which they were sampled, and can also further serve as the basis for joint analysis on markers and traits. This procedure uses the notation and concepts described by Weir (1996) in reference for all equations and methods. This paper will provide an introduction to PROC ALLELE and will demonstrate on how to adopt this procedure to analyze pharmacogenomics ( marker) data. We will illustrate on how to construct tables of allele, genotype frequencies, Hardy-Weinberg Equilibrium (HWE) analyses and linkage disequilibrium between each pair of markers and look at key statistical estimates used for inferences analysis |
proc freq, proc step | source | 8 |
| 103 | Macro Quoting to the Rescue: Passing Special Characters | Mary F. O. Rosenbloom, Arthur L. Carpenter |
We know that we should always try to avoid storing special characters in macro variables. We know that there are just too many ways that special characters can cause problems when the macro variable is resolved. Sometimes, however, we just do not have a choice. Sometimes the characters must be stored in the macro variable whether we like it or not. And when they appear we need to know how to deal with them. We need to know which macro quoting functions will solve the problem, and even more importantly why we need to use them. This paper takes a quick look at the problems associated with the resolution and use of macro variables that contain special characters such as commas, quotes, ampersands, and parentheses | macro variable, macro call, macro quoting function, call execute, where statement, macro function, macro trigger, proc print, macro facility, ods rtf, proc step, macro loop, do loop, output delivery system, autocall macro | source | 10 |
| 104 | Macro to Combine Listing and Descriptive Statistics Table in One Report | Chenille Lloyd | A comprehensive presentation of clinical trials data is often desired in order to achieve a greater understanding of the safety and efficacy of a new drug. The most valuable reports are able to provide more than one perspective of the data while maintaining readability. The primary objective of this paper is to generate a combined report of an individual subject listing followed by a descriptive statistics table using SAS/MACRO language and SAS/BASE. A single presentation that concatenates a listing and table is particularly useful for pharmacokinetic analysis studies which require easy identification of outliers and trends in drug concentration data. The macro features additional functionality by allowing the programmer to specify subject exclusions and the number of decimal places used to report results |
in=, proc means | source | 7 |
| 105 | Making a List, Checking it Twice: Efficient Production and Verification of Tables and Figures Using SAS | Linda Collins, Elizabeth Li |
Managing all the 'moving parts' of clinical data analysis is a daunting task. 'Moving parts' include inputs (raw data files, specifications), outputs (analysis files and reports) and processes (programs and macros). Each process and output must be verified as correct and each program executed in the proper sequence. Project leaders must be able to track the verification status of each output. In this paper, we present techniques for managing analysis through an 'inventory' spreadsheet of analysis metadata. The metadata is used to generate 'driver' programs that perform data selection and produce the tables, listings and figures (TLFs). Analysis programs not only generate TLFs, but also create SAS datasets with a consistent format for storing summary results. The results datasets make it possible to automate independent programming verification | excel, sample, data science, independent qc, data cleaning, raw data | source | 17 |
| 106 | Making Your SAS Data JMP Through Hoops | Mira Shapiro | Longtime SAS users can benefit by adding JMP to their repertoire. JMP provides an easy -to-use and robust environment for data exploration, graphics and analytics without the need for programming expertise. This paper will provide an introduction to JMP 9 with an emphasis on features that SAS users will find useful. During this presentation, users will learn how to read their SAS data, impor t EXCEL spreadsheets, transform their data, explore distributions, create reports and create sophisticated graphics all in the JMP environment. Users will be introduced to the tools within the JMP 9 environment that provide a pathway to quickly learn how t o use the product and some of its unique features |
dataset, sample, multinomial logistic regression, proc hpsplit, logistic regression, logistic distribution, histogram, regression analysis | source | 19 |
| 107 | Managing a Blended Programming Staff of Permanent Employees and Contingent Workers | Jim Grudzinski | The focus of this presentation will be my experience of managing a blended programming staff. The challenge of managing the shift to a small permanent programming staff, and a corresponding shift to an expanded contingent worker staff. It will highlight the impact of shifting roles on the permanent staff and the management techniques I used to ease this transition. I'll discuss the need to ensure that the changing environment does not impact programming deliverables. I will also key on techniques I used to manage contingent workers effectively | source | 3 | |
| 108 | Managing a Team of Veteran Programmers: Some Tips for Discussion | Todd Case, Arthur Collins |
A recent Google search of 'Managing Veteran Programmers' resulted in over thirty nine million results, the first of which was 'Allentown's Mayfair festival to have veteran programmer help book…' While there are many books on 'Management' it only takes a moment to realize that they cover just about everything except managing SAS programmers! This underlies in part the interest in the topic and the necessity of this paper. The purpose of this paper is to open the management dialogue around this topic and discuss managing veteran programmers specifically | sas programmer, advanced sas | source | 4 |
| 109 | Managing Programmers across the Great Divide: An Odyssey in managing CRO-s, in Big and Small Pharma, Biotech and Pharma and in NJ, CA and Boston | Todd Case | Managing SAS programmers has always been difficult, given the somewhat paradoxical nature of having to possess the technical nature of SAS programming, and at the same time as a Manager having to understand and, most importantly, communicate in assisting and overcoming the difficult technical challenges posed to SAS programmers in the pharmaceutical industry. For example, a recent trend has been to analyze elevated Liver Function Tests [LFTs] administered on the same day, when there can be multiple tests on the same day, etc.. In addition, managers of SAS programmers routinely have to present to a variety of peers and stakeholders within their own companies (not to mention at industry conferences!) | sas programmer, phase iii, data science, sas programming | source | 3 |
| 110 | Maximize the power of %SCAN using WORDSCAN utility | Priya Lakshmi Saradha | This paper demonstrates the power of %SCAN macro function using the user -defined utility, WORDSCAN, and illustrates the most effective way to pass input parameters for any acro. WORDSCAN is a powerful utility macro which splits a given string into new macro variables and counts the total number of individual words. The utility's key features are, any character can be used as a delimiter in the input string and any character (bound by the rules of SAS variable naming conventions) can be used as a prefix for the new macro variable names. Using the %SCAN macro function, the utility searches through the input string for the specified delimiter and identifies the words to be created as new macro variables. Each word, thus identified, is stored in separate macro variables. The macro variables are named by the utility using the prefix, provided as a n input, followed by a sequence number | macro variable, macro function | source | 5 |
| 111 | Merge vs. Join vs. Hash Objects: A Comparison using "Big" Medical Device Data | James R. Johnson | Due to the use of memory-based operations, hash objects have the potential to reduce the time it takes to combine and sort data files. This presentation compares the performance of three methods in SAS used to retrieve a subset of data from a SQL Server database table with over 370 million records. The methods compared are 1) merging data in a DATA STEP and sorting with PROC SORT; 2) PROC SQL inner join with an ORDER BY statement; and 3) hash object programming |
hash table, proc sql, proc step, dataset, proc sort, data mart, by group processing, cpu time, order by, inner join | source | 6 |
| 112 | Metadata: Some Fundamental Truths | Frank C. DiIorio | An essential characteristic of a healthy workplace is its ability to increase and diversify its work load without compromising product quality. Workflow volume and quality can often be addressed by adding to existing staff and improving the computing environment. However, when the work flow becomes a work deluge, the need for a paradigm shift becomes apparent. Metadata - data describing corporate processes and data - is a potent tool for making this shift. This paper discusses a number of conceptual issues related to the design, implementation, and growth of metadata- based systems. It identifies situations where metadata can improve processes and suggests how to evaluate both the benefits and costs of implementation. The treatment of the topic is necessarily abstract, with minimal product references and coding examples | crf, proc contents, attrib statement, data governance, edc, macro variable, out=, excel, proc sql, data cleaning, adam dataset, sdtm domain, cdisc | source | 10 |
| 113 | Migrating to a 64-bit operating system: Quick pointers | Jacques Thibault | The 64-bit operating environment becomes the new commodity platform and beginning with SAS 9.2, you can now choose to run 64-bit SAS on Windows x64. Since the 64-bit environment removes the 2GB of memory limit that exists on 32-bit machines, it may sound interesting to take advantage of it. It is certainly worth discussing and exploring what you are getting yourself into prior to migrating to such environment and how to best be prepared for a smooth migration in order to reduce the amount of unexpected surprises. This paper discusses what you should consider when changing your current 32-bit Windows operating system to a new 64-bit Windows platform and potential impacts you should anticipate for your SAS programs and related data files | proc step, data cleaning, libname statement, stored macro, macro catalog, sample, excel | source | 6 |
| 114 | Multiple Applications of ADaM Time-to-Event Datasets | Huei-Ling Chen, Helen Wang |
The CDISC ADaM team recently created guidelines for Time to Event (TTE) datasets. In the guidelines, a TTE dataset is specifically used to support survival analysis. This paper demonstrates that the TTE dataset can be used to support Exposure-Adjusted Incidence Rate (EAIR) analysis. This exploratory use of the ADaM TTE datasets structure filled a void in the CDISC ADaM analysis dataset structure for EAIR analysis. Detailed procedure and code for generating an EAIR analysis dataset will be presented. In addition, step-by-step instructions for generating a TTE analysis dataset and survival analysis | survival analysis, exposure-adjusted incidence rate, adverse events, adam dataset, clinical trial, date variable, time variable, proc step, proc phreg, cdisc | source | 6 |
| 115 | Multiple Techniques for Scoring Quality of Life Questionnaires | Brandon L. Welch, Seungshin Rhee |
In the clinical trials computing environment, data sets come in a variety of shapes and sizes. From laboratory data to electrocardiogram (ECG) measurements, transforming raw data to analysis-ready SAS data sets is often complicated. New challenges arise when we receive data collected from quality of life (QOL) questionnaires. With these data we often compute scores that measure underlying scales - such as mental or social well-being. There are many different types of questionnaires, and it is advantageous to have an arsenal of programming tools when calculating the appropriate scores. In this article, we present a mock questionnaire and common techniques to achieve appropriate calculations. Depending on the input data structure, we illustrate how to calculate scores using various techniques including ARRAY processing, PROC SQL, and simple SAS functions |
proc sql, proc step, missing value, imputation, sas function, array, mean imputation, structured data | source | 10 |
| 116 | Need a hand to locate your variables in an entire library? | Ying Guo | The ability to quickly identify the location of a variable in an entire library is critical during table, figure and listing (TFL) development, especially, when there is only limited information available for some of the variables. For example, sometimes, there may only be a partial variable name available, or perhaps you may only know one of the values for a variable. It is really time consuming to manually search for the expected variable in an entire library. Instead of opening each dataset and manually searching for the expected variables, the macro presented in this paper is a SAS macro program designed to identify the location of a variable in a time-efficient and user-friendly way. It can automatically search all variables in a library regardless of the dataset structure and variable names | create table, proc step | source | 5 |
| 117 | One at a Time; Producing Patient Profiles and Narratives | Joseph J. Hantsch, Janet E. Stuelpner |
Patient profiles can take many forms depending on the purpose for whi ch it is going to be used. For data cleansing, it can be a data dump for each patient so that any data anomalies can be discovered. It is important to see each and every field that is collected on the C ase Report Form (CRF). Once the data is clean and data standards have been applied, the best method for medical review, discovery of subject abnormalities or preparation for the Clinical Study Report ( CSR), the narrative type of profile would best. Clinical reviewers are interested in how the whole patient looks, but not quite interested in each field that is collected on the CRF. All of this can be done with Base SAS and macros to create the listings, formatted profiles and narratives. Another way to create the patient profile is with a data visualization tool, JMP Clinical . Patient profiles are customizable and can display data from any combination of the core safety CDISC domains | adverse events, clinical trial, cdisc | source | 6 |
| 118 | One Macro Call to a Table with both Frequency and Summary Elements from a Subject-Level Dataset | Wayne (Weizhen) Zhong | A Subject-Level dataset such as ADSL has one observation per subject with data appropriate to the format, such as demographics, baseline characteristics, certain disposition events, and other one record per subject numeric or character data. Tables summarizing this data corresponding have both frequency and summary statistics sections, and normally the tables are produced in individual sections and assembled together. The code to do each section is not complex, which is why this table is a good candidate for a macro to produce. This paper presents the full code of the macro, built with simplicity of the macro call in mind. The call requires only 3 parameters: the input dataset, a variable used to define table columns, and a list of mixed numeric/character variables, one for each section of the table. Adding optional features allow full control over the table presentation, with the end goal of making the program header the lengthiest section of the program | proc freq, macro call, character variable, macro variable, out=, temporary dataset, proc sql | source | 9 |
| 119 | OpenCDISC Plus | Annie S. Guo | OpenCDISC Validator is a collection of tools widely used in the industry to validate clinical trial data in compliance with the CDISC standards, including SDTM, ADaM, SEND, Define.xml, and others. The output from OpenCDISC is an EXCEL or CSV file, containing warnings, errors and other messages, one row per message per observation and variable(s) violating each rule. That often produces a lengthy report, and it can be laborious to cross-check SAS data sets to resolve the messages. This paper is focused on SDTM and proposes an enhancement, OpenCDISC Plus. It merges the OpenCDISC report with SDTM data in SAS, and creates EXCEL files - OpenCDISC Plus SDTM - that are essentially the same as the original report, except for the addition of SDTM data alongside each message. It eliminates the need to access the physical SAS data sets or ad-hoc programming |
macro call, macro variable, dataset, sample, excel, cdisc | source | 10 |
| 120 | Pattern-Mixture Models as Linear Combinations of Least Squares Means from MMRM with Delta Method Variance Estimation | Bohdana Ratitch, Michael O'Kelly |
For studies with missing data, it is being increasingly recommended to provide sensitivity analyses that assume data are Missing Not at Random (MNAR). In certain therapeutic areas, MNAR assumptions about the missingness mechanism are even recommended for the primary analysis. MNAR assumptions can be modeled within several statistical frameworks, one of which is known as pattern-mixture models (PMMs). Certain PMM-based analyses for continuous outcomes can be formulated in such a way that the estimate of the difference between experimental and control treatments is expressed as a linear combination of Least Squares Means (LSMs) for different effects of a longitudinal model with correlated errors, weighted by the appropriate proportions of study drop-outs and completers | proc calis, treatment arm, proc mixed, proc step, covariance, imputation, missing value, treatment effect, out=, in=, baseline, macro variable, dataset, maximum likelihood estimation, estimate, likelihood function, sample, macro parameter, proc fcmp, fixed effects, macro definition, repeated measures, clinical trial | source | 15 |
| 121 | Perl Regular Expressions in SAS 9.1+ - Practical Applications | Joel Campbell | Perl Regular Expressions (PRX) are powerful tools available in SAS and many other programming languages and utilities which allow precise and flexible pattern matching. This paper discusses the relative advantages of PRXMATCH() versus INDEX() and presents practical applications to serve as a starting point for programmers of all experience levels to begin incorporating the PRX functions in their own code. Also, a method to create dynamic regular expressions from DATA STEP variables is presented in addition to a method of pulling information from a string with a single line of code via PRXCHANGE(). The main aim of this paper is to provide all programmers with resources and motivation to begin using the PRX functions in their code |
character variable, prxmatch | source | 4 |
| 122 | Personalized Risk Graphs for Intervention Trials - in Technicolor! Using PROC GKPI and CALL EXECUTE to Get the Job Done | Janet M. Grubber, Cynthia J. Coffman, Will Yancy, Corrine Voils |
Research investigators and clinicians are often interested in producing personalized risk graphs for research participants or patients. We used the GKPI procedure in SAS version 9.2 to produce batches of risk graphs for a randomized trial of an intervention to communicate participants' individual risks for developing type 2 diabetes based on demographic, clinical, and genetic risk factors. We pilot-tested a variety of potential graphs with 35 participants to determine, based on participant feedback, which graphs were most easily understood and most clearly communicated risk. Graphs created by PROC GKPI can only be produced by hard coding the data values within the procedure rather than by passing the values to the procedure through the "DATA=Data Set Name" option. We present a macro and CALL EXECUTE code to demonstrate a method for producing batches of graphs without having to hard code the data values within the GKPI procedure |
proc step, call execute, title statement | source | 8 |
| 123 | PIPE Dreams: Yet Another Tool for Dynamic Programming | Scott Burroughs | Statisticians are often divided into Bayesians and Frequentists when it comes to study design and analysis beliefs. As a SAS programmer, you could put me in the Dynamic camp. This is my 6th presentation at a SUG, and all have had something to do with dynamic programming. Dynamic programming is letting the ever-changing and often unknown data drive the results….no hardcoding! There is a dynamic tool that I've used when I needed to read in non-SAS data sets or files from a certain directory where I didn't necessarily know the names of the files nor how many there were. The PIPE command in SAS is a tool to read in files from a directory when the names and quantity are unknown and changing | proc contents, proc step, macro variable, filename statement, macro definition | source | 6 |
| 124 | Problem with your SAS Program? Solutions abound! | Max Cherny | All SAS users at some point will come across a SAS problem that they cannot resolve on their own. This paper explains where and how to get help to solve any SAS problem. The appropriate use of such sources of help as SAS Help Facility, SAS-L Newsgroup, SAS.com's Knowledge Base, and many others is demonstrated. Their strengths and limitations are analyzed and compared. Additionally, most SAS users do not even realize they can contact SAS technical support about almost any SAS problem. This underutilized approach of getting help directly from SAS is also explained | proc step, macro variable, proc gchart, sas syntax, excel, macro loop, macro definition | source | 12 |
| 125 | PROC REPORT Unwrapped: Exploring the Secrets behind One of the Most Popular Procedures in Base SAS Software | Allison McMahill Booth | Have you ever wondered why a numeric variable is referenced in different forms within a COMPUTE block? Do you know the difference between a DATA STEP variable and a variable that is listed in the COLUMN statement? Then, this paper is for you! Welcome to PROC REPORT Unwrapped. We are looking at PROC REPORT and uncovering some of the behind-the-scenes details about this classic procedure. We will explore the components associated with PROC REPORT and discover ways to move column headings and change default attributes with styles and CALL DEFINE statements. We will also dig deep into example code and explore the new ability to use multilabel formatting for creating subgroup combinations. So for anyone who has ever written PROC REPORT code, stay tuned. It's PROC REPORT Unwrapped! |
proc report, proc step, sas log, numeric variable, proc print, automatic variable, title statement, sas enterprise guide, file statement, output delivery system | source | 18 |
| 126 | Proficiency in JMP Visualization | Charles E. Shipp, Kirk Paul Lafler |
The premier tool for robust statistical graphics is JMP. It combines easy navigation, advanced algorithms, and graphical output you can trust. After a brief introduction of JMP navigation and resources within the JMP software, we take a tour of classical and modern advanced graphical capability of JMP. In the SAS Global Forum talk we introduce case studies that show the power of JMP using graphics and analysis. To conclude, we cover directions in training and JMP user exchange | source | 6 | |
| 127 | Program Development with SAS Enterprise Guide and SAS/Connect in a Combined PC and Unix Environment | Roger D. Muller | SAS Version 9 for the Microsoft Windows environment is an excellent tool both for developing SAS programs and for running them in production mode. SAS Enterprise Guide (EG) has matured into a developmental tool useful to the advanced SAS programmer. This paper examines the use of SAS EG on the PC in combination with a Unix server which: (1) also has SAS, (2) is the storage depot for production runs of the final code including logs and outputs, and (3) contains the raw data which is being summarized. Workflow will be shown both with and without the use of S AS/Connect which serves to minimize the flow of large amounts of data between machines and takes advantage of the most powerful and appropriate processor for the task at hand. Strong differentiation will be made on the advanced capabilities of exploring SAS data sets in EG with the Query Builder as opposed to the Viewtable facility in PC SAS | dataset, sas enterprise guide, proc step, proc sql, sas programming, proc download, sas programmer, temporary dataset | source | 31 |
| 128 | PROGRAMMER'S SAFETY KIT: Important Points to Remember While Programming or Validating Safety Tables | Sneha Sarmukadam, Sandeep Sawant |
With many global pharmaceutical companies/ CRO's outsourcing their work, there is a need of qualified professionals to do the clinical programming job. In order to build clinical programming capabilities, there is a requirement of well designed trainings. The training module generally consists of rigorous SAS trainings followed by trainings on Safety/ Efficacy modules. This paper will provide a checklist for repor ting or validation of safety data in the pharmaceutical domain. With the help of this checklist, programming or validation can become relatively easy. Amateurs in clinical programming and especially programmers without a background of clinical domain might find these guidelines to be very useful. Moreover, the safety outputs across various studies are more or less similar. Using a standard checklist can ensure accuracy and efficiency in reporting | adverse events, data cleaning, change from baseline, system organ class, clinical programming, proc means, concomitant medications | source | 11 |
| 129 | Programming With CLASS: Keeping Your Options Open | Arthur L. Carpenter | Many SAS procedures utilize classification variables when they are processing the data. These variables control how the PROCEDURE FORMS groupings, summarizations, and analysis elements. For statistics procedures they are often used in the formation of the statistical model that is being analyzed. Classification variables may be explicitly specified with a CLASS statement, or they may be specified implicitly from their usage in the procedure. Because classification variables have such a heavy influence on the outcome of so many procedures, it is essential that the analyst have a good understanding of how classification variables are applied. Certainly there are a number of options (system and procedural) that affect how classification variables behave. While you may be aware of some of these options, a great many are new, and some of these new options and technique s are especially powerful. You really need to be open to learning how to program with CLASS |
proc step, missing value, proc freq, proc report, proc means, proc tabulate | source | 15 |
| 130 | Quick Data Definitions Using SQL, REPORT and PRINT Procedures | Bradford J. Danner | Prior to undertaking analysis of clinical trial data, in addition to review of the Protocol, Case Report Forms, and Statistical Analysis Plan, a basic understanding of the SAS data available is crucial for statistical programmers and biostatisticians. Such an understanding can be accessed readily using the DATASETS and CONTENTS procedures. To centralize in one place and increase efficiency by which the information may be reviewed, a quick method using the SAS DICTIONARY library with the SQL, REPORT and PRINT procedures is presented. Through dynamic, data- driven, generation of macro control variables, a hyper linked data definitions document, in multiple formats, may be produced quickly, and with minimal user input | proc report, temporary dataset, proc sql, macro variable, proc print, dataset, create table, data science | source | 5 |
| 131 | Reading and Writing RTF Documents as Data: Automatic Completion of CONSORT Flow Diagrams | Arthur L. Carpenter, Dennis G. Fisher |
Whenever the results of a randomized clinical trial are reported in scientific journals, the published paper must adhere to the CONSORT (CONsolidated Standards Of Reporting Trials) statement. The statement includes a flow diagram, and the generation of these CONSORT flow diagrams is always problematic, especially when the trial is not the typical two-arm parallel design. Templates of the typical two-arm design flow diagram are generally available as RTF documents, however the completion of the individual fields within the diagram is both time consuming and prone to error. The SAS Macro language was used to read a RTF template file for the CONSORT flow diagram of choice, fill in the fields using information available to the SAS program, and then rewrite the table as a completed RTF CONSORT flow diagram. This paper describes the process of reading and writing RTF files | macro loop, do loop, macro facility, macro variable, macro function | source | 9 |
| 132 | Ready to Become Really Productive Using PROC SQL? | Sunil Kumar Gupta | Using PROC SQL, can you identify at least four ways to: select and create variables, create macro variables, create or modify table structure, and change table content ? Learn how to apply multiple PROC SQL programming options through task -based examples. This hands -on workshop reviews topics in table access, retrieval, structure and content, as well as creating macro variables. References are provided for key PROC SQL books, relevant webinars, podcasts as well as key SAS technical papers |
proc sql, macro variable, proc step, order by | source | 20 |
| 133 | Rediscovering the DATA _NULL_ for Creating a Report, And Putting That Text File Into RTF Format In a Single Datastep | David W. Franklin | Before PROC REPORT existed, most text output files were created by PROC PRINT and PROC TABULATE, or where a report was needed that needed a bit more sophistication, DATA _NULL_ was used. This paper rediscovers the DATA _NULL_ as it is used for creating a text output file and presents a few macros, tricks and techniques that will make your report shine, including a macro for wrapping text so it can go onto multiple lines, doing "Page x of y" processing, centering or right aligning text, page breaking where you want it, and carrying over group values from one page to another. Finally, the output that is produced from a full example will be transformed into an RTF file by a macro in a single datastep |
put statement, data step, proc step | source | 14 |
| 134 | Reporting Outliers in Data: A Macro to Identify and Report Distant Data Points | Howard Liang, Jason Bishop |
When performing statistical analysis on data, certain statistical assumptions must hold. The identification of outliers is an integral part of grooming the data for analysis. One must check to see if these outliers are valid data from the data source. Reports can be created with and without detected outliers so statisticians and researchers can best decide on appropriate statistical methods and properly interpret the analysis results | outlier, sample, proc mixed, proc step | source | 5 |
| 135 | Risk Evaluation and Mitigation Strategies (REMS) and How They Impact Biostatistics and Statistical Programming Groups | Arthur Collins | The Food and Drug Administration Amendments Act (FDAAA) of 2007 expanded the regulatory authority of the FDA with regard to risk management programs, creating a new program called Risk Evaluation and Mitigation Strategies (REMS). The REMS requirements build on the Risk Minimization Action Plans (RiskMAP) which were instituted in 2005. As a result, the requirements placed on drug makers for post-marketing safety and risk assessment have been growing. Approximately one-third of new drug approvals have REMS associated with them, 16 of the 30 existing RiskMAP programs have been transitioned to REMS programs, and the FDA may be moving towards using REMS for mitigation of off-label product use. This leads to more work for departments supporting REMS activities including Biostatistics and Statistical Programming | clinical programming, clinical research | source | 4 |
| 136 | SAS Data Query and Edit Checks with HTML5 | Sy J. Truong, Ale Gicqueau |
Querying data used to require sophisticated algorithms and programming with SQL expertise or SAS DATA STEP techniques. Now, there are many user-friendly graphical tools to build expressions without having to program code to access relational databases. However, there are few tools for creating queries from a web interface upon SAS data. This paper describes a real world project where data managers extract data from a relational database and transfer it to SAS data. Data managers need a user-friendly query tool to verify the cleanliness of the resulting SAS data. Since data managers are not SAS programmers, the HTML5 web interface eases the learning curve allowing them to perform tasks such as: creating compound query expressions, deriving temporary imputed variables, saving and combining saved queries. These are some of the methods described in this paper as it explains how to use SAS DATA STEP, HTML5 and XML to accomplish an effective user experience |
dataset, clinical data, proc step, proc sql, relational database, sas programmer, proc freq, data cleaning | source | 17 |
| 137 | SAS Enterprise Guide Best of Both Worlds - Is it Right for You? | Sunil Kumar Gupta | Whether you are new to SAS or a seasoned SAS Programmer, you still face the same dilemma. Does SAS Enterprise Guide represent the best of both worlds to make the transition to SAS easier with a point -n-click interface or enhance your productivity with over 90 tasks? Do you follow the same traditional path taken by millions who learned SAS many decades ago or do you take the yellow brick road to directly analyze your data? This presentation explores the vast differences between these two cultures and how they impact your programming environment. While there are numerous benefits to using SAS Enterprise Guid e, there are also some caveats to keep in mind to make the transition smoother | sas enterprise guide, sas programmer, dataset, numeric variable, proc step, proc report, sas log | source | 9 |
| 138 | SAS File Design: Guidelines for Statisticians and Data Managers | Douglas Zirbel | Although it might at first seem harmless, poor or careless design of clinical trials data files can result in big problems later. Misunderstandings, delays, and even erroneous data are potential consequences to the clinical research organization, the pharmaceutical company, and ultimately to patients. This paper reviews a number of mistakes made in analysis/submission file specifications, then provides guidelines and a checklist for intelligent file design, whether CDISC or other formats | key, clinical trial, normalization, flat file, relational database, variable, label statement, proc sql, dataset, cdisc | source | 6 |
| 139 | SAS Macro Programming Tips and Techniques | Kirk Paul Lafler | The SAS Macro Language is a powerful feature for extending the capabilities of the SAS System. This presentation highlights a collection of techniques for constructing reusable and effective macros tools. Attendees are introduced to the techniques associated with building functional macros that process statements containing SAS code; design reusable macro techniques; create macros containing keyword and positional parameters; utilize defensive programming tactics and techniques; build a library of macro utilities; interface the macro language with the SQL procedure; and develop efficient and portable macro language code |
macro variable, macro facility, proc step, autocall macro, macro definition, macro parameter, %macro parameters, macro function, proc sql, dictionary tables, options statement, macro loop, &variable | source | 9 |
| 140 | SAS Programming 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 Display 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, proc sql, options statement, 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 | source | 15 |
| 141 | SAS UNIX-Space Analyzer - A Handy Tool for UNIX SAS Administrators | Airaha Chelvakkanthan Manickam | In the fast growing area of information and technology, SAS users tend to occupy a lot of space with their SAS data sets. As time goes on, these SAS data sets tend to grow and slowly occupy the entire space on the file system. It is a challenge for the SAS admin to bring control over the file system as there are numerous SAS users and everyone utilizes the file system for their day-to-day use. Hence a solution is necessary to manage the UNIX file system from the perspective of top space utilizing users, high volume SAS files, how long SAS files are kept and owners of oldest SAS files and newest SAS files, etc. The proposed solution uses SAS to issue UNIX commands to capture the attributes of every file on the file system and SAS to build a mini-data warehouse around the usage of the file system. Using the data warehouse, the SAS admin can issue simple queries to understand the utilization of the file system at any point time | data mart, excel, proc means, sas enterprise guide, proc step, where statement, flat file, sample, proc sort | source | 12 |
| 142 | Scrambling of Un-Blinded Data without 'Scrambling Data Integrity'! | Jaya Baviskar | Scrambling of data is widely used and successfully im plemented across several functional sectors and the pharmaceutical domain is one such area to effectively impl ement this technique. It is an efficient way to work with data while retaining data integrity as th is is critically important while wo rking on sensitive data seen across the pharmaceutical domain. The 'scrambling of data' is more in demand for 'Blinded' studies with a short life-sp an that have to execute all processes in relatively smaller timelines. Hence the idea behind scrambling data is to facilitate 'Programmers', 'Biostatisticians', 'Data Managers' and other team members a glimpse of study data without compromising on data integrity. This helps to pre-empt the process of working on 'Analysis / Derived Data sets' or assess and design study- specific programs; thereby providing comparatively longer time-frame than usual | proc step, unique key, data integrity, proc iml, proc fcmp, raw data, dataset | source | 8 |
| 143 | SDTM Domain Development on the Critical Path - Strategies for Success | David C. Izard | The design and development of SDTM domains from legacy source data and documents requires careful planning and execution in order to produce a high quality set of deliverables. The placement of this activity on the critical path introduces additional challenges that need to be addressed early and consistently revisited during study execution in order to ensure that business needs are met at the end of the day. This paper and presentation will explore the inherent challenges, risks and strategies that can be employed to ensure that the development of SDTM deliverables at this important time can effectively be managed and ultimately reduce overall time, energy & effort with on all Clinical activities related to study completion | sdtm domain, adam dataset, raw data, csr, clinical trial, database lock, cdisc | source | 5 |
| 144 | SDTM Domain Mapping with Structured Programming Methodology | Chengxin Li, Jing-Wei Gao, Nancy Bauer |
This p aper describes the implementation of SDTM domain mapping with structured programming methodology. Structured design and structured programming make our mapping codes easy to implement, understand, debug, and maintain. Example codes for domain mapping are provided, with which the readers can easily adapt to meet their mapping requirements | proc step, sdtm domain, proc sql, clinical trial, macro variable, clinical data, cdisc | source | 8 |
| 145 | SDTM, ADaM and define.xml with OpenCDISC | Matthew J. Becker | Standards are an ongoing focus of the health care and life science industry. Common terms you will see and hear during industry conferences include: "SDTM," "ADaM," "ODM," "LAB," "SEND," and "define(.xml/.pdf)." What do these terms mean? How do we create and validate these standards before submission to a client OR the FDA? Is there an easier way to ensure compliance? As a user, many of us have spent hours reading the SDTM/ADaM standards and implementation guides to generate "compliant" SAS data sets for our clinical studies. We have spent countless hours having another user QC our data structures...but is there an easier way? Each of these terms and subsequent standards encompass a set of metadata. Metadata is "data about data." For example, a PROC CONTENTS of a data set produces a list of variables, variable type, variable length, variable format, etc. Each of these tidbits of information is metadata about that individual data set |
data cleaning, excel, length statement, missing value, raw data, ods xml, cdisc | source | 14 |
| 146 | Sending Emails in SAS to Facilitate Clinical Trial | Frank Fan | Email has drastically changed our ways of working and communicating. In clinical trial data management, delivering reports to users is part of our daily activities. Most of our colleagues prefer receiving reports by email rather than on the web or in a shared drive. Email is indeed one of the most convenient ways of communication | proc step, clinical trial, put statement, file statement, filename statement, sample | source | 8 |
| 147 | Seven New SDTM Domains for Medical Devices | Carey G. Smoak, Fred Wood, Rhonda Facile, Kit Howard |
Medical devices are an important part of the healthcare industry, and device approvals (PMAs) by the FDA increased by more than 50% from 2000 to 2009. In May 2006, an SDTM Device sub-team was formed. This team was expanded in February 2009 to include CDASH team members. The goal of this Device sub-team is to develop a set of content standards for a core set of data collection fields and submission datasets . Towards that goal, seven new SDTM domains have been developed: Device Identifiers (DI); Device Properties (DO); Device In-Use Properties (DU); Device Exposure (DX); Device Events (DE); Device Tracking and Disposition (DT) and Device-Subject Relationships (DR). Several new SDTM variables (including identification of the device under study) will be needed for these seven new SDTM domains | sdtm domain, sdtmig, cdisc | source | 4 |
| 148 | Short-circuiting PROC COMPARE: Techniques for Focusing Dataset Comparisons | Tracy Sherman, Brian P. Fairfield-Carter |
Electronic file comparisons are a staple of analysis dataset programming and validation, with PROC COMPARE output as the end product of most independent double-programming. This output can be frustrating to work with, particularly in early stages of program validation when discrepancies can be extensive, since PROC COMPARE is not particularly adept at matching non-discrepant records when the number of records on the 'base' and 'compare' datasets don't match (this in contrast to many 'diff' utilities used in text-file comparisons, which can often accommodate record-count differences). When confronted with record-count differences, most programmers resort to temporary sub-setting and ad hoc/throw-away blocks of code to help trim down PROC COMPARE output and focus review efforts. However, these methods follow a reasonably consistent pattern, and as such it seems plausible that more generalized techniques could be developed |
proc compare, proc step, out=, record count, proc freq, sas output, data cleaning, macro loop, %if-%then-%else | source | 8 |
| 149 | Simplifying Effective Data Transformation Via PROC TRANSPOSE | Arthur X. Li | You can store data with repeated measures for each subject, either with repeated measures in columns (one observation per subject) or with repeated measures in rows (multiple observations per subject). Transforming data between formats is a common task because different statistical procedures require different data shapes. Experienced programmers often use ARRAY processing to reshape the data, which can be challenging for novice SAS users. To avoid using complex programming techniques, you can also use the TRANSPOSE procedure to accomplish similar types of tasks. In this talk, PROC TRANSPOSE, along with its many options, will be presented through various simple and easy-to-follow examples |
proc transpose, proc step, by group processing, repeated measures | source | 13 |
| 150 | Statistical Graphics for Clinical Research Using ODS Graphics Designer | Wei Cheng | Statistical graphics play an important role across various stages in clinical research. They help investigators to explore and understand raw data in the early stage of statistical analysis, as well as present final analysis result in the formal publications. The graphs need to be specifically designed and carefully drawn to best represent data and analysis. While this can be done by SAS programming using traditional SAS DATA steps and SAS/GRAPH procedures, the process is time consuming and time is spent to find the right options or annotation syntax. With SAS 9.2M3, ODS Graphics Designer (Designer) becomes production software. This is an interactive "point and click" application that can be used to design and create custom graphs. This new application greatly enhances the ability to effectively generate statistical graphs for clinical research |
bar chart, vertical bar chart, proc freq, treatment arm, histogram, clinical research, treatment period, clinical trial, scatter plot, sas syntax | source | 23 |
| 151 | Streamlining Regulatory Submission with CDISC/ADaM Standards for Non-standard Pharmacokinetic/Pharmacodynamic Analysis Datasets | Xiaopeng Li, Katrina E. Canonizado, Chun Feng, Nancy Wang |
Analysis Data Model (ADaM) which is encouraged by FDA in clinical trial data submission is designed to support analysis datasets. Non-Standard ADaM dataset for Pharmacokinetic (PK) and Pharmacodynamic (PD) analyses have not been clearly discussed . Based on Analysis Data Model v2.1, this paper shares the approaches of how to map non-standard PK/PD data to create ADaM datasets to support the analyses for Thorough QT studies, reproductive safety studies and studies with urine collections. The approaches make the ADaM datasets for these studies consistent with Analysis Data Model v2.1 and submission ready. Detailed mapping methods and examples of these ADaM datasets will be presented | pd, change from baseline, sample, clinical data, data science, adam dataset, structured data, adpc, key, cdisc | source | 6 |
| 152 | Study on Good Programming Practices in Health and Life Sciences | Arthur Collins, Mark Foxwell, Beate Hientzsch, Cindy Q. Song |
Most organizations with programming personnel have a document where they describe their best practices for developing high quality and efficient code. This document typically provides guidance on programming techniques such as code design, naming conventions, appropriate use of macros, hard coding restrictions, defensive programming strategies, maximizing efficiency, etc. The Steering Board for Good Programming Practices in Health and Life Sciences (GPP Board) is an industry group with representatives from a diverse array of health and life sciences organizations working to develop common good programming practices applicable to programs developed by statistical programming for the analysis and reporting of clinical trial data as well as for data integration or preparation of clinical data for e-submissions. One of our goals is to create a consolidated guideline which potentially could replace those documents created and maintained by each organization | life sciences, clinical trial, temporary dataset, clinical data | source | 4 |
| 153 | Supplementing Programmed Assisted Patient Narratives (PANs) with Graphs Using SAS | Faye Yeh, Melvin S. Munsaka |
When addressing safety issues of concern, it is often necessary to provide narratives on specific patients. Indeed, the ICH-E3 guideline calls for provision of narratives of deaths, other serious adverse events, and certain other significant adverse events judged to be of special interest. To facilitate for this, it is useful to provide programmed assisted narratives (PANs) in the form of targeted patient profiles. PANs are also useful for internal safety review, safety monitoring, and data integrity checks. They are basically by-patient numeric and text listings organized by domain and include targeted data needed for narratives. They allow for consolidation of information about the important domains in one place without having to look at multiple listings for the subject's data | adverse events, serious adverse event, concomitant medications, study day, proc report, proc step, laboratory data, medical history | source | 12 |
| 154 | Taming the Box Plot | Sanjiv Ramalingam | Box plots are used to portray the range, quartiles and outliers if any in the data. PROC BOXPLOT can be used to obtain the necessary graphic but certain situations may arise where direct application of the procedure and use of the plethora of options that come along with it may not be sufficient to get the desired graph. One such application is discussed in detail. This should empower the reader u pon understanding to create any box plot that the reader may wish. The methodology discussed assumes that the re ader has at least a modicum of understanding of the annotate feature |
box plot, proc step, macro variable, proc boxplot, proc freq, outlier | source | 7 |
| 155 | Techniques for Improvising the Standard Error Bar Graph and Axis Values Completely Through SAS Annotation | Sunil Kumar Ganeshna, Venkateswara Rao |
This paper introduces the multiple challenges and several useful techniques for enhancing SAS/GRAPH output when creating plots with standard error bars and symbols of the least square means/mean and enhancing multiple x-axis values with uneven intervals. The macro presented in this paper utilizes the techniques of data manipulation, SAS annotation, markers and fonts, plot statement, axis statement, symbol and legend statements; this single macro call generates an annotated dataset that is utilized to create an Error bar graph with multiple axis values |
proc calis, class variable, macro call, macro variable, macro definition | source | 12 |
| 156 | The Application of SAS Perl Regular Expression in Clinical Trial Studies - Batch Processing SAS Programs | Zhong Yan, Kimberly Jones |
In clinical trial research, it is sometimes necessary to batch process SAS programs within a study in order to ensure consistent updates. The process of manually opening each program and searching for the places that need to be updated is time consuming and prone to errors. SAS Perl Regular Expression is a powerful tool that can be used to scan files for matches with an identifiable pattern and replace them with customized choices. This paper introduces the application of SAS Perl Regular Expression to batch process SAS programs using SDD SAS programs as an example | clinical trial, filename statement | source | 7 |
| 157 | The application of variable-dependent macro on SDTM conversion | Mindy Wang | In clinical trials and many other research fields, repetitive statements happen very often. This pa per illustrates how to deal with the same task with three different approaches. The first approach uses simple copy and paste any SAS beginner can do. The second approach uses a simple macro program to make the task more efficient, and reduce the length of the program. To further improve the program and to make the program more adaptable to other projects, the third approach uses variable -dependent macros which minimize tedious typing, eliminate possible human errors, and ensure the accuracy of data | macro variable, data step, cdisc | source | 9 |
| 158 | The Greatest Hits: ODS Essentials Every User Should Know | Cynthia L. Zender | Just when you think you know every song (feature) in the ODS hit parade, you discover that there's an option or destination or feature that has you singing its praises because the feature boosted your reports to the next level. This paper covers some of the essential features and options of ODS that every user needs to know to be productive. This paper shows concrete code examples of the ODS "Greatest Hits". Come to this session and learn some of the essential reasons why ODS and Base SAS rock! |
ods html, excel, proc step, proc tabulate, proc print, proc report, sas log, output delivery system, proc reg, ods pdf, file statement, proc template, dataset, output, proc univariate, ods output, ods csv, ods rtf, anova, by group processing, estimate, select, txt, user-defined format, sas output | source | 34 |
| 159 | The power of using options COMPLETETYPES and PRELOADFMT | Naren Surampalli | As a statistical programmer in pharmaceutical industry, our job revolves around generating reports, which involve calculating counts and percentages across different treatments. To generate counts, most of us use procedures like frequency, sql etc., but these procedure doesn't display a missing group, if all the values of a particular group are missing in a data set. To display zeros for a missing group or treatment in our reports, we end up writing additional code, which is not very efficient. This paper will discuss a better way to count, handle missing values efficiently and show how to create totals and sub-totals easily using one or two steps | proc step, proc means, missing value, proc format | source | 5 |
| 160 | The SAS Data Step: Where Your Input Matters | Peter W. Eberhardt | Before the warehouse is stocked, before the stats are computed and the reports run, before all the fun things we do with SAS can be done, the data need to be read into SAS. A simple statement, INPUT, and its close cousins FILENAME and INFILE, do a lot. This paper will show you how to define your input file and how to read through it, whether you have a simple flat file or a more complex formatted file |
input statement, infile statement, raw data, sample, date variable, character variable, data step, sas log, cpu time, delimited file, length statement, dataset | source | 18 |
| 161 | The Use and Abuse of the Program Data Vector | James R. Johnson | Have you ever wondered why SAS does the things it does, or why your programs "get away with" the things that they do, or why SAS would not do what you wanted it to? A key operational component of SAS is the program data vector. Without it SAS would not function as we know it. With knowledge of how the program data vector functions, programmers can better understand how SAS works. This paper will help you understand how the program data vector works, how data steps use it, and how you can exploit, manipulate, and trick it. Many examples are included; the magic behind of the DOW-loop and other mysteries will be discussed. There is something in this paper for all levels of programmers from the very beginner to the most advanced | pdv, where statement, data step, set statement, keep statement, subsetting if, dataset, drop statement, rename statement, automatic variable, if-then-else, do loop, proc print, by group processing, character variable, proc step, retain, missing value | source | 23 |
| 162 | Things Dr Johnson Did Not Tell Me: An Introduction to SAS Dictionary Tables | Peter W. Eberhardt | SAS maintains a wealth of information about the active SAS session, including information on libraries, tables, files and system options; this information is contained in the Dictionary Tables. Understanding and using these tables will help you build interactive and dynamic applications. Unfortunately, Dictionary Tables are often considered an 'Advanced' topic to SAS programmers. This paper will help novice and intermediate SAS programmers get started with their mastery of the Dictionary tables. Ever needed a list of the tables (datasets) in a library? How about the columns (variables) in a table? Need to make sure you reset any titles after you run a report? Got some pesky warning messages in your SAS log you would like to clean up? Sure, you can look them up in the table and column properties in the explorer window. Or you can run a PROC CONTENTS and check the listing. And of course you can ignore the warnings and errors in the SAS log since they 'almost always appear' |
dictionary tables, proc sql, proc step, sas log, data step, sashelp, sas library, sas programmer | source | 15 |
| 163 | Transform Incoming Lab Data into SDTM LB Domain with Confidence | Anthony L. Feliu | Converting incoming lab data into a submission-ready format is often challenging and stressful to the programmer. Vendors, sponsors, and collection instruments all have their own structures and nomenclature for lab data. This paper details a process to mold disparate data into a unified whole. In brief, verbatim values of each incoming data file will be mapped one-to-one into SDTM variables. Mapped data are then compared to a dictionary of tests which is held outside the program as the "gold standard." When a match is found, verbatim values are updated to CDISC-compliant dictionary terminology. Otherwise the record is flagged for review. Next, result values for quantitative tests are compared to the "preferred units" for that test. The incoming result will either be accepted, rescaled with help from a second dictionary of conversion factors, or flagged. Similarly, qualitative test results are standardized | sample, laboratory data, raw data, verbatim term, controlled terminology, foreign key, sdtm domain, macro variable, cdisc | source | 27 |
| 164 | Transposing Tables from Long to Wide: A Novel Approach Using Hash Objects | Joseph W. Hinson, Changhong Shi |
Transposing tables is often a necessity in data analysis. In clinical studies, some data, for example laboratory data, are collected in a longitudinal manner. Yet a horizontal form of such data may be more suited for statistical analysis. SAS provides the TRANSPOSE procedure for such purposes, but this approach can be quite challenging. SAS 9 introduced the use of hash objects for the purpose of providing fast table lookups and merging without the need for pre-sorting data. In this paper, we exploited an entirely different aspect of the technique - the ability of hash objects to look at a whole table as a matrix in a DATA STEP rather than observation-by-observation. This allowed us to easily rearrange data in a table |
hash table, proc transpose, macro variable, variable list, clinical trial, proc step | source | 11 |
| 165 | Tumor Assessment using RECIST: Behind the Scenes | Suhas R. Sanjee, Rajavel Ganesan, Mary N. Varughese |
Tumor assessment is a vital part of drug discovery in oncol ogy franchise. Most of the efficacy endpoints such as Progression Free Survival, and Time to Progression are based on tumor assessments . Tumor assessments can be quantitative and qualitative. Various steps involved in quantitative tu mor assessments are discussed in this paper. In quantitative tumor assessment, patient sca ns/images are fed into an algorithm, which quantifies the tumor based on its characteristics. A number of image processing algori thms are available for tumor quantification from Computed Tomography (CT), Positron Emission Tomography (PET), Magnetic Resonance Imaging (MRI) and other modalities. These algorithms are traditionally not implemented in SAS and the statistical programmer will have these assessments pre-calculated in SDTM/raw data for analysis. This paper describes the implementation of a simple tumor quantification and assessment algorithm using SAS procedures | complete response, procedures, pd, proc iml, cdisc | source | 7 |
| 166 | Use Your Cores! An Introduction to Multi-core Processing with SAS | Erik H. Dilts | Computing power has changed direction the past few years. In the past, chip manufacturers designed faster and faster processors (CPUs), but they reached the theoretical limit of that method. This is how the multiple -core CPU in today's computers came to be. A multi-core CPU is essentially the same as having multiple CPUs. SAS 9 can take advantage of these cores in several different ways. This paper will explain how to use multi-core processing to your advantage. In addition it will demonstrate the pros and cons of the various techniques available under Windows, and when to use them | data step, macro variable | source | 3 |
| 167 | Using a Picture Format to Create Visit Windows | Richann J. Watson | Creating visit windows is sometimes required for analysis of data. We need to make sure that we get the visit/day in the proper window so that the data can be analyzed properly. However, defining these visit windows can be quite cumbersome especially if they have to be defined in numerous programs. This task can be made easier by applying a picture format, which can save a lot of time and coding. A format is easier to maintain than a bunch of individual programs. If a change to the algorithm is required, the format can be updated instead of updating all of the individual programs containing the visit definition code | if-then-else, character constant | source | 4 |
| 168 | Using File Modification Date Comparisons to Alert Study Teams of Potential SAS Program Revisions between Shared Folders | Stephen Hunt, Brian P. Fairfield-Carter |
In the absence of version control, communicating ch anges made to programs between development and prod uction areas (e.g., modifications to a select few blinded- area programs that must be copied over to an unblin ded area for re-delivery) can easily result in 'stale' code and outdated output without absolutely perfect coordina tion across the entire study team. To compound things, there indubi tably exists an inverse relationship between size of programming teams and the timely and accurate commu nication within them. In such circumstances, an unb linded programmer or statistician must often rely on their own manual verification of the state of files to b e run in production in situations of concurrent development (i.e., sinc e members of a blinded team would be unable to veri fy or directly compare against contents of an unblinded folder the mselves) | txt, clinical research | source | 6 |
| 169 | Using JMP Partition to Grow Decision Trees in Base SAS | Mira Shapiro | Decision Tree is a popular technique used in data mining and is often used to pare down to a subset of variables for more complex modeling efforts. If your organization has only licensed Base SAS and SAS/STAT you may be surprised to find that there is no procedure for decision trees. However, if you are licensed JMP 9 user, you can build and test a decision tree with JMP. The Modeling→Partition analysis provides an option for creating SAS DATA STEP scoring code. Once created, the scoring code can be run in Base SAS. This discussion with provide a brief overview of decision trees and illustrate how to create a decision tree with Partition in JMP and then create the SAS DATA STEP Scoring code |
proc hpsplit, sas base, sample, dataset | source | 16 |
| 170 | Using PROC COMPARE to identify new and updated records in a subject listing | Mark McLaughlin | Subject listings are a vital means for investigators to review clinical trial study data, although their usefulness often wanes as the output gets longer and more unwieldy. Similarly, as the length of the output increases, investigators are often concerned with reviewing only the most recent data points, information that gets increasingly difficult to find as the listings span multiple pages. This paper examines a method to both identify new records added since the prior listing was run, and flag those records that are no longer new but have since been updated or altered. It uses both DATA STEP programming and the output from PROC COMPARE, with a little PROC SQL thrown in. The result is a data listing that includes the variables of interest, and an additional column which indicates what has been altered since the last iteration of the data listing. If the observation is a new one (one that didn't exist last time around) then the column is flagged with the letter "N' (for new record) |
proc compare, proc step, adverse events, proc sql, clinical trial, macro variable | source | 5 |
| 171 | Using SAS Colon Effectively | Sudhir Singh | SAS colon is not clearly documented or indexed in the SAS manual. Although the colon is one of the most powerful useful symbol operators available to the programmer, some of its features are rarely found in typical SAS code. In this paper I will explain how colon can be used as a operator modifier, label indicator, a format modifier, a keyword component, a variable name wildcard, an array bound delimiter or a special log indicator. Mastering these usages can give your code needed functionality and/or efficiency lift | list input, data step, colon modifier, macro variable, macro put, input statement, proc sql, array | source | 6 |
| 172 | Using SAS to Calculate Noncompartmental Urine Parameters | Vanessa Rubano, Modesta Wiersema |
Clinical Pharmacology is an integral part of clinical trials and the approval of a new drug. To obtain regulatory approval for a New Drug Application (NDA), a sponsor is required to show the elimination of drug and metabolites within the human body's matrices, such as urine and feces, supported by plasma pharmacokinetic (PK) endpoints. The industry standard used for calculating PK endpoints is the application of clinical trial data to WinNonLin (WNL), a software modeling package that is based on mathematical equations. The authors of this paper aim to provide an introduction to PK urine assessments and describe a method, using SAS programming, to derive PK endpoints for individual and cumulative amounts excreted (Ae), fractions of the administered dose excreted (fe) and renal clearance (CLR) of drug from the plasma matrix to urine for a complete profile of a subject or patient | dataset, clinical trial, sample, clinical endpoint | source | 8 |
| 173 | Using Skype to run SAS programs | Romain Miralles | Skype is a well -known method used to talk to friends, family members and co -workers. It is one of the best applications available to make voice calls over the Internet. In this paper we will present a new, innovative way to use SAS with Skype. Here, we have developed a solution that allows users to run SAS remotely through Skype. After installing the DLL from the API on the application website, programmers can create scripts to control Skype. By sending a specific message to a pre-defined user, programmers can execute SAS on demand. This paper will explain how to use Skype to run SAS programs. It will describe the installation and config uration of the DLL, provide the VB script needed to communicate with Skype, and illustrate a real -case scenario in which this technique is used | clinical database, clinical trial | source | 6 |
| 174 | Using the New Features in PROC FORMAT | Richard D. Langston | This paper describes several examples using functions as labels within PROC FORMAT definitions. Also described is the new feature allowing for Perl regular expressions for informatting data, as well as other new features in PROC FORMAT for SAS 9.3 |
proc format, proc step, date variable, proc fcmp, sysdate9 | source | 7 |
| 175 | Using the SAS Clinical Standards Toolkit 1.4 for define.xml creation | Lex Jansen | When submitting clinical study data in electronic format to the FDA, not only information from trials has to be submitted, but also information to help understand the data. Part of this information is a data definition file, which is the metadata describing the format and content of the submitted data sets. When submitting data in the CDISC SDTM format it is required to submit the data definition file in the Case Report Tabulation Data Definition Specification (CRT -DDS, also known as define.xml) format as prepared by the CDISC define.xml team. This workshop will provide an introduction to the structure and content of the define.xml file. The SAS Clinical Standards Toolkit will then be used to create the define.xml file , including Value Level metadata | annotated crf, data cleaning, crf, dataset, output delivery system, macro variable, cdisc | source | 30 |
| 176 | Using the SAS System as a bioinformatics tool: a macro that calls the standalone Basic Local Alignment Search Tool (BLAST) setup | Kevin R. Viel | Aligning DNA and RNA sequences is an integral task in genomics research. For brief and practical purposes, DNA and RNA can be thought of as character strings comprised of A, C, G, and T (DNA) or U (RNA). Within the constraints of the SAS System, namely 32,767 bytes for a character variable, patterns can be matched or "aligned" using, for example, regex expressions (PRXMatch). This size limit typically suffices even for the state of the art sequencing projects, in which read lengths may be well under 15,000 base-pairs. For larger sequences, a SAS programmer may have to consider calling a perl program or use a tool like Basic Local Alignment Search Tool (BLAST), a popular tool for alignments. An example of an alignment to a sequence larger than the SAS limit might be the need to determine the start position of a primer within a gene, for instance 186 Kb F8 | txt, data step, dataset, character variable, macro parameter, file statement, length statement, put statement, macro variable, macro definition | source | 8 |
| 177 | Validating SAS Macros and Updated SAS Version | Sy J. Truong, Carey G. Smoak |
The rapid updates to the SAS software implemented in a regulated controlled environment within the pharmaceutical/biotechnology industry have created validation challenges. Users require the efficiencies of automated macros and the functionality of the new version of SAS, but the complexity of computing environments in a dynamic hardware and software platform makes it difficult to maintain a validated SAS system. This paper will share practical methods and techniques used in the validation of SAS macros and upgrade of SAS to a new version on a production server. Some of the areas it will cover include: SAS Macro Validation - Testing multi-use macros to ensure proper error checking and integrity. SAS IQ/OQ - SAS 9.2 is bundled with a series of scripts for performing installation and operational qualifications. * Performance Qualification - Performance tuning and testing are not covered by SAS tools. This paper will illustrate methods and macros on how to perform this testing | data cleaning, macro definition, elapsed time, macro call, sas programmer | source | 11 |
| 178 | Waterfall Charts in Oncology Trials - Ride the Wave | Niraj J. Pandya | In oncology trials, overall drug response is usually analyzed using Response Evaluation Criteria in Solid Tumors (RECIST) criteria. Using these criteria, results are expressed in 4 to 5 different categories. By collapsing tumor response in to different categories, it reduces the amount of data available for interpretation. Waterfall chart is one way to address this issue. It is a way of plotting the tumor size across the entire spectrum of much broader view of results. Waterfall chart is a data visualization technique that depicts how a value increases or decreases for parameter of interest. Waterfall chart is gaining recognition recently for the reporting of overall drug response in Oncology clinical trials because of its simple yet powerful representation of results. It can be used for performance or response analysis, especially for understanding or explaining the overall response of a parameter which can vary with the effect of multiple factors | waterfall chart, proc step, response variable, proc sgplot, change from baseline, clinical trial, complete response, in= | source | 8 |
| 179 | Watermarking and Combining Multiple RTF Outputs in SAS | Ajay Gupta | In order to expedite the review process, we often get request from the client or business user to combine all tables and listings into one rtf document. Unfortunately, SAS does not provide a function to combine multiple rtf documents. Also, before finalization of the study draft listings and tables are generated more frequently for reviews. Unknowingly, using this draft listings and tables produced in SAS for business needs increases the risk associated with misusing or misinterpreting the results. A viable solution to reduce that risk is to use a visible watermark embedded in the SAS outputs such as a pale image or text displayed and/or printed behind the text. This paper will introduce a method for combining the multiple rtf documents into one rtf document and adding watermark to the final RTF document in SAS using word basic commands via DDE (Dynamic Data Exchange). If needed, these functions can be use independently | macro variable, macro call, ods rtf, data step, proc step | source | 6 |
| 180 | What to Do with a Regular Expression | Scott Davis | As many know, SAS has provided support for regular expressions for some time now. There are numerous papers that expose the basic concepts as well as some more advanced implementations of regular expressions. The intent of this paper is to bridge the gap between the very beginning and the advanced. In the past you might have solved a programming problem with a combination of SUBSTR/SCAN and other functions. Now a regular expression may be used to greatly reduce the amount of code needed to accomplish the same task. Think of this paper as a recipe or guide book that can be referenced for some real-life examples that will hopefully get you thinking about ways to create your own regular expressions | prxposn, sas programmer | source | 6 |
| 181 | Why Does SAS Say That? What Common DATA Step and Macro Messages Are Trying to Tell You | Charles E. Mullin, Kevin Russell |
SAS notes, warnings, and errors are written to the log to help SAS programmers understand what SAS is expecting to find. Some messages are for information, some signal potential problems, some require you to make changes in your SAS code, and some might seem obscure. This paper explores some of these notes, warnings, and errors that come from DATA STEP and macro programs. This paper deciphers them into easily understood explanations that enable you to answer many of your questions |
sas log, character variable, substr function, error message, numeric variable, proc step, proc import, macro facility, macro variable, macro function, macro definition, sample, options statement, proc contents, dataset, stored macro, macro parameter, %macro parameters, input statement, length statement, put statement, character functions, &variable, by group processing, format statement, macro quoting function, missing value, txt, %if-%then-%else | source | 17 |
| 182 | Why the Bell Tolls 108 times? Stepping Through Time with SAS | Peter W. Eberhardt | For many SAS programmers, new or even advanced, the use of SAS date and DATETIME variables is often very confusing. This paper addresses the problems that the most of programmers have. It starts by looking at the basic underlying difference between the data representation and the visual representation of date, DATETIME and time variables. From there it discusses how to change data representations into visual representations through the use of SAS formats. Since date manipulation is core to many business process, paper also discusses date arithmetic first by demonstrating the use of simple arithmetic to increment dates; then by moving on to SAS functions which create, extract and manipulate SAS date and DATETIME variables. Finally, paper demonstrates the use of the %sysfunc macro function and the %LET statement to present date, DATETIME and time variables. This paper is introductory and focuses on new SAS programmers, however, some advanced topics also covered |
sysdate9, date variable, datetime variable, time variable, macro variable, datetime, sas programmer, sas function, time, proc sql, character variable, relational database, format statement, macro function | source | 15 |
| 183 | You Could Be a SAS Nerd If . . . | Kirk Paul Lafler | Are you a SAS nerd? Wiktionary, a wiki -based Open Content dictionary, defines "nerd" as a person who has good technical or scientific skills, but is generally introspective or introverted. Another definition is a person who is intelligent but socially and physically awkward. Obviously there are other definitions for "nerd", many of which are associated with derogatory terms or stereotypes. This presentation focuses not on the negative descriptions associated with being a nerd, but on the many positive traits SAS users possess. So let's see how nerdy you actually are using the mostly unscientific, but fun, "Nerd" detector | sas programmer, sas log | source | 4 |
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