TRANSFORMING MULTIPLE-RECORD DATA INTO SINGLE-RECORD FORMAT WHEN NUMBER OF VARIABLES IS LARGE.

Size: px
Start display at page:

Download "TRANSFORMING MULTIPLE-RECORD DATA INTO SINGLE-RECORD FORMAT WHEN NUMBER OF VARIABLES IS LARGE."

Transcription

1 TRANSFORMING MULTIPLE-RECORD DATA INTO SINGLE-RECORD FORMAT WHEN NUMBER OF VARIABLES IS LARGE. David Izrael, Abt Associates Inc., Cambridge, MA David Russo, Independent Consultant ABSTRACT In one large survey project each record in the raw data set contains information from one survey form. At some point, of the data needs to be done transposing a multiple-record-per-object data set to a one-record-perobject data set that retains all raw variables from all data sources. The large dimension of the original data set requires an approach that can: a) carry out the denormalization in a reasonable amount of time; b) handle the indexing and standardization of variables= names automatically; c) easily adapt as the set of variables changes over time. One approach uses a two-step PROC TRANSPOSE. This approach deals elegantly with issues b) and c), but it takes a substantial amount of time to run. The second approach uses a driving macro based on the RETAIN statement. Although this method requires some maintenance, it runs much more quickly than the TRANSPOSE method. INTRODUCTION We have been involved in a survey that periodically collects many items of information from each of many respondents. Some of the items may come from multiple sources, and these items must be combined into a single record. A key step in the process creates distinct variable names that indicate both the nature of the item and the source of the data. The large number of variables makes it advantageous to automate this step. Our approach exploits the structure that the survey has imposed on the names of the variables. Many variables belong to groups; their names share a prefix and are distinguished by a digit that follows the prefix. For example, within the group of variables with prefix PFX1 five month variables (text components of dates) might be PFX11_MO, PFX12_MO, PFX13_MO, PFX14_MO, PFX15_MO (1) The prefixes may have different lengths, so the suffixes may have different lengths and structure as well. Thus, depending on the length of the prefix, the variables in (1) above may look like: PFX11_M, PFX12_M, PFX13_M, PFX14_M, PFX15_M (2) or even PFX11M, PFX12M, PFX13M, PFX14M, PFX15M (3) Below, we refer to these variables as Type 1 variables. The second type (Type 2) of variables includes all plain Ascalar-like@ variables. The survey record also contains a case ID variable (denoted by CASEID in excerpts below) and the variable SEQ_NUM, which, in our multi-record case, distinguishes the survey forms (i.e., respondents) for a given CASEID. In processing the data we need to do calculations across all the survey forms for a given CASEID and then across all the CASEID=s. In other words, the input data set has to be transposed, creating a record with unique CASEID that contains values from all SEQ_NUM. The newly created Type 1 variables must bear the same prefix and primary index as the original ones. Also, variables of both types must be assigned a secondary index that reflects their original SEQ_NUM. Because the prefixes have different lengths, the code implementing the transpose must control the length and the structure of the derived variables. Thus, the set of variables (1) would lead to the following set of transposed variables (assuming that maximum SEQ_NUM is 5): Length of PFX1 = 3: PFX11_MO1,..., PFX11_MO5, PFX12_MO1,..., PFX15_MO5 (4) Length of PFX1 = 4: PFX11_M1,..., PFX11_M5, PFX12_M1,..., PFX15_M5 (5) Length of PFX1 = 5: PFX11M1,..., PFX11M5, PFX12M1,..., PFX15M5 (6)

2 The first challenge in automating the building of derived variables is to accommodate the addition of new variables to the original data set. Dimensions of the data themselves pose a challenge. Around 60,000 records with 600 variables impose a strict execution time constraint on the implemented code. DOUBLE PROC TRANSPOSE The main idea in this approach is to transpose the raw variables of each unique length and type separately, so that all variables in the resulting data set do not have the same length and type. The natural tool for such a task is PROC TRANSPOSE with some pre- and postprocessing. The following code implements this idea. Because we deal we deal with character raw variables, the presented macro omits any mentioning of TYPE of variables but it can easily be modified take TYPE into account. *******************************************; * Double Transpose; *******************************************; proc contents data=inp_data out=temp noprint; proc sort data=temp; where upcase(name) notin ('CASEID','SEQ_NUM'); by length name; data _null_; set temp end=eof; by length; if first.length then do; numlens+1; /* increment number of unique lengths*/ call symput('length' left(put(numlens,2.)), trim(left(put(length,3.)))); end; if eof then call symput('numlens',trim(left(put(numlens, 2.)))); %MACRO TRANSP; file "varlist.prv" lrecl=120 flowover; if upcase(name) notin ('CASEID','SEQ_NUM') then put name proc transpose data=inp_data out=inp_&i; by CASEID SEQ_NUM; var %include "varlist.prv"; data inp_&i; length _NAME_ $8; set inp_&i; _NAME_=trim(substr(_NAME_,1,7)) put(seq_num,1.); proc transpose data=inp_&i out=inp_&i(drop=_name_); by CASEID; var col1; %END; data output; merge %do i = 1 %to &numlens; inp_&i ; by CASEID ; %mend transp; %transp; Generate list of variables for the following PROC TRANSPOSE. Group together all variables with the same length. Create global macro variables that give the number of different unique variable lengths (&NUMLENS) and each of the lengths (&LENGTH1, &LENGTH2, etc.). Û Create ASCII file that contains names of variables of length &&LENGTH&I. Ü Ý Þ ß %DO I = 1 %TO &NUMLENS; data _null_; set temp; where length = &&length&i ; Û Ü Transpose variables indicated in the ASCII file. Created by PROC TRANSPOSE, variable COL1 contains values of transposed variables. The variable _NAME_ has the names of the variables transposed in this iteration.

3 Ý Append the sequence number to the values of the _NAME_ variable, thus creating the secondary index in the names of variables which will be used in the next transpose. Þ A final transpose for iteration &I. ß Merge transposed data sets for the unique variable lengths. This approach avoids the need for a programmer to manually modify code when the set of raw variables changes. To use this code for different types (e.g., NUMERIC, DATA) of variables, one can introduce the variable TYPE into BY statement in,,. WHERE clause in Û must also include TYPE. However, the CPU time and work space requirements eventually became so substantial that this part of the whole code was a serious bottleneck. The number of iterations (i.e., number of unique lengths of variables) in our case is 11. In each iteration, the first PROC TRANSPOSE creates tens of million of records, and the second PROC TRANSPOSE literally spends hours to process them. Also, the accumulation of work data sets from each iteration required about gigabyte of precious disk space. Nonetheless, the double-transpose method could be successfully used in three cases: a) when the computer=s resources are less limited than the programmer=s, b) when the set of raw variables changes frequently and dimension of the original data set is not very large, and c) when the number of distinct lengths of variables (i. e., the number of iterations) is small. In our case, we have decided to switch to... OLD RELIABLE RETAIN The second approach makes straightforward use of the RETAIN statement. A close examination of variable names allowed us to build macros that perform the following functions: a) assigning values of raw variables to derived variables along with control over their lengths b) maintaining the original indexes and creating the secondary ones ************************************ *MACRO INIT ************************************; %macro init; var1&i =' '; var2&i =' '; c) initializing derived variables d) keeping derived variables e) retaining derived variables. The macros operate on sets of variables that share the same prefix (e.g., the month, day, and year components of a date, along with the associated flags). The following macros implement those functions. In our case both primary and secondary indexes have 5 as a maximum value. ******************************************** * MACRO KEEP ********************************************; %macro keep; keep = caseid var1&i var2&i... %do j=1 %to 5; Pfx1&i_mo&j Pfx1&i_da&j Pfx1&i_yr&j... Macro %KEEP keeps the derived variables in the resulting data set. This %DO loop keeps derived Type 2 variables (only the secondary index is assigned). This %DO loop keeps derived Type 1 variables: text components of dates and special flags that supplement the dates (both indexes are assigned). All transposed variables must be listed in this macro. Thus, unlike in the first method, the programmer must type in all derived variables (a straightforward task with any good editor). Similarly, variables must be added or removed manually. The above note applies also to the following %INIT and %RETAIN macros.... %do j=1 %to 5; Pfx1&i_mo&j =' '; Pfx1&i_da&j =' '; Pfx1&i_yr&j =' ';...

4 Macro %INIT assigns the initial >missing= values to the transposed variables. It has the same structure as the macro %KEEP. ******************************************* *MACRO RETAIN *******************************************; %macro retain; retain var1&i var2&i... %do j=1 %to 5; Pfx1&i_mo&j Pfx1&i_da&j Pfx1&i_yr&j... Macro %RETAIN retains the transposed variables in the resulting data set. Its structure is identical to that of macro %KEEP. Now, we declare arrays for assigning values to derived variables of Type 2. ********************************************* *MACRO ARRAY1 *********************************************; %macro array1 (pref, l); %if %length(&pref)<8 %then %do; %let namarr =&pref._ ; %let varout =&pref; %else %do; %let nam=%substr(&pref,1,7); %let namarr=&nam._ ; %let varout=&nam; %let ty =ty_ ; %else %if %length(&pref)=4 and (&und gt) %then %do; %let mc = _m; %let dc = _d; %let yc = _y; array &namarr {5} $ &l &varout.1 &varout.2 &varout.3 &varout.4 &varout.5; Macro %ARRAY1 prepares an array for a further assignment of Type 2 variables. It has two parameters: Apref@ (prefix of the variable, which in case of Type 2 just means the whole variable name) and Al@ (length of the variable). and determine the name of the array from the length of the variable. We now assign values to the derived variables of Type 2. ************************************** * MACRO ASSIGN1 **************************************; %macro assign1(pref, in); %if %length(&pref)<8 %then %do; %let namarr =&pref._ ; %else %do; %let nam=%substr(&pref,1,7) ; %let namarr=&nam._ ; &namarr.[&in] = &pref; Macro %ASSIGN1 assigns values of raw Type 2 variables to the derived variables through the array created by macro %ARRAY1. We declare some arrays for a further assigning of values to derived variables of Type 1. ********************************************* MACRO ARRDATE *********************************************; %macro arrdate(pref,flag=,op=,und=); %if %length(&pref)<=3 %then %do; %let mc = _mo; %let dc = _da; %let yc = _yr; %let opp =op_ ; %let ty = ty; %let opp = op; %else %if %length(&pref)=4 %then %do; %let mc = mo; %let dc = da; %let yc = yr;

5 %else %if %length(&pref)=5 %then Û %do; %let mc = m; %let dc = d; %let yc = y; array &pref&i._d{5} $ 2 &pref&i&dc.1 &pref&i&dc.2 &pref&i&dc.3 &pref&i&dc.4 &pref&i&dc.5; array &pref&i._m{5} $ 2 &pref&i&mc.1 &pref&i&mc.2 &pref&i&mc.3 &pref&i&mc.4 &pref&i&mc.5; array &pref&i._y{5} $ 4 &pref&i&yc.1 &pref&i&yc.2 &pref&i&yc.3 &pref&i&yc.4 &pref&i&yc.5; %if &flag=yes %then %do; array &pref&i._t{5} $ 1 &pref&i&ty.1 &pref&i&ty.2 &pref&i&ty.3 &pref&i&ty.4 &pref&i&ty.5; %if &op=yes %then %do; array &pref&i._o{5} $ 1 &pref&i&opp.1 &pref&i&opp.2 &pref&i&opp.3 &pref&i&opp.4 &pref&i&opp.5; Macro %ARRDATE prepares arrays of components of dates (Type 1 variables), along with their supplemental flags (FLAG and OP in our case). Parameter UND controls whether the underscore should be inserted before the suffix. Those arrays will be used in the further assignments %include 'retain.inc'; %include 'init.inc'; %include 'arrays.inc'; %include 'assign.inc'; data rslt_ds(%keep); /* resulting data set */ %arrdate(pfx1,flag=yes,op=yes,und=yes); Ü to the derived variables.,,, and Û assign suffixes to the array name, depending on the length of the prefix. Suffixes are assigned to the date components and flags mentioned above. Ü declares arrays for the date components and for the flags, if any. We assign components of dates and special flags: ********************************************* * MACRO ASSIGNDT *********************************************; %macro assigndt(pref,in,flag=,op=); %if %length(&pref)<5 %then %do; &pref&i._d[&in] =&pref&i._da; &pref&i._m[&in] =&pref&i._mo; &pref&i._y[&in] =&pref&i._yr; %else %do; &pref&i._d[&in] =&pref&i.d; &pref&i._m[&in] =&pref&i.m; &pref&i._y[&in] =&pref&i.y; %if &flag=yes %then %do; &pref&i._t[&in] =&pref&i.ty_; %if &op =yes %then %do; &pref&i._o[&in] =&pref&i.op_; and assign values of original date components, depending on the length of the prefix; does the same operation but for flags, if any. And now it is time to assemble the parts and make them work. ******************************************** * Main Code ********************************************; %include 'keep.inc'; %arrdate(pfx2,flag=yes,op=yes,und=yes); %array1(var1,12); %array1(var2,2);... %retain; set orig_ds; /* original data set */ by caseid;

6 if first.caseid then do; %init; s=0; end; s+1; %assigndt(pfx1,s,flag=yes,op=yes); %assigndt(pfx2,s,flag=yes,op=yes);... %assign1(var1,s); %assign1(var2,s);... Û Ü Ý if last.caseid then output; Include all described macros. Run macro ARRDATE. All existing prefixes must be listed here. Run macro ARRAY1. All existing variables of Type 2 must be listed here. Û Initialize variables and creates count on SEQ_NUM. Ü Assign values of original dates components and flags. All variables of Type 1 must be listed here. Ý Assign values of original variables of Type 2. All variables of Type 2 must be listed here. Preparation of these codes and macros may seem tedious; but this is generally a one-time effort that, with a good editor, does not take much time for typing. Our set of variables is comparatively stable. Around five new prefixes arrive every half a year. So modification of macros does not present a problem either. RETAIN method has dramatic advantages over the Double Transpose one. It runs several minutes against several hours needed for Double Transpose, and requires little disk space because everything runs in memory. CONCLUSION A programmer should decide on a case-by-case basis which method to apply when transposing records with a large number of variables. The decision should take into account the dimension of the original data set, the structure of the variables names, and available resources. ACKNOWLEDGMENTS The authors would like to thank David C. Hoaglin of Abt Associates Inc., Cambridge, Massachusetts for his comments and assistance in developing this paper.

TRANSFORMING MULTIPLE-RECORD DATA INTO SINGLE-RECORD FORMAT WHEN NUMBER OF VARIABLES IS LARGE.

TRANSFORMING MULTIPLE-RECORD DATA INTO SINGLE-RECORD FORMAT WHEN NUMBER OF VARIABLES IS LARGE. TRANSFORMING MULTIPLE-RECORD DATA INTO SINGLE-RECORD FORMAT WHEN NUMBER OF VARIABLES IS LARGE. David Izrael, Abt Associates Inc., Cambridge, MA David Russo, Independent Consultant ABSTRACT In one large

More information

Chapter 6: Modifying and Combining Data Sets

Chapter 6: Modifying and Combining Data Sets Chapter 6: Modifying and Combining Data Sets The SET statement is a powerful statement in the DATA step. Its main use is to read in a previously created SAS data set which can be modified and saved as

More information

The Ugliest Data I ve Ever Met

The Ugliest Data I ve Ever Met The Ugliest Data I ve Ever Met Derek Morgan, Washington University Medical School, St. Louis, MO Abstract Data management frequently involves interesting ways of doing things with the SAS System. Sometimes,

More information

A SAS Macro for Balancing a Weighted Sample

A SAS Macro for Balancing a Weighted Sample Paper 258-25 A SAS Macro for Balancing a Weighted Sample David Izrael, David C. Hoaglin, and Michael P. Battaglia Abt Associates Inc., Cambridge, Massachusetts Abstract It is often desirable to adjust

More information

Implementing external file processing with no record delimiter via a metadata-driven approach

Implementing external file processing with no record delimiter via a metadata-driven approach Paper 2643-2018 Implementing external file processing with no record delimiter via a metadata-driven approach Princewill Benga, F&P Consulting, Saint-Maur, France ABSTRACT Most of the time, we process

More information

Paper DB2 table. For a simple read of a table, SQL and DATA step operate with similar efficiency.

Paper DB2 table. For a simple read of a table, SQL and DATA step operate with similar efficiency. Paper 76-28 Comparative Efficiency of SQL and Base Code When Reading from Database Tables and Existing Data Sets Steven Feder, Federal Reserve Board, Washington, D.C. ABSTRACT In this paper we compare

More information

Creating Macro Calls using Proc Freq

Creating Macro Calls using Proc Freq Creating Macro Calls using Proc Freq, Educational Testing Service, Princeton, NJ ABSTRACT Imagine you were asked to get a series of statistics/tables for each country in the world. You have the data, but

More information

A Cross-national Comparison Using Stacked Data

A Cross-national Comparison Using Stacked Data A Cross-national Comparison Using Stacked Data Goal In this exercise, we combine household- and person-level files across countries to run a regression estimating the usual hours of the working-aged civilian

More information

Two useful macros to nudge SAS to serve you

Two useful macros to nudge SAS to serve you Two useful macros to nudge SAS to serve you David Izrael, Michael P. Battaglia, Abt Associates Inc., Cambridge, MA Abstract This paper offers two macros that augment the power of two SAS procedures: LOGISTIC

More information

SUGI 29 Statistics and Data Analysis. To Rake or Not To Rake Is Not the Question Anymore with the Enhanced Raking Macro

SUGI 29 Statistics and Data Analysis. To Rake or Not To Rake Is Not the Question Anymore with the Enhanced Raking Macro Paper 7-9 To Rake or Not To Rake Is Not the Question Anymore with the Enhanced Raking Macro David Izrael, David C. Hoaglin, and Michael P. Battaglia Abt Associates Inc., Cambridge, Massachusetts Abstract

More information

SAS 101. Based on Learning SAS by Example: A Programmer s Guide Chapter 21, 22, & 23. By Tasha Chapman, Oregon Health Authority

SAS 101. Based on Learning SAS by Example: A Programmer s Guide Chapter 21, 22, & 23. By Tasha Chapman, Oregon Health Authority SAS 101 Based on Learning SAS by Example: A Programmer s Guide Chapter 21, 22, & 23 By Tasha Chapman, Oregon Health Authority Topics covered All the leftovers! Infile options Missover LRECL=/Pad/Truncover

More information

Chaining Logic in One Data Step Libing Shi, Ginny Rego Blue Cross Blue Shield of Massachusetts, Boston, MA

Chaining Logic in One Data Step Libing Shi, Ginny Rego Blue Cross Blue Shield of Massachusetts, Boston, MA Chaining Logic in One Data Step Libing Shi, Ginny Rego Blue Cross Blue Shield of Massachusetts, Boston, MA ABSTRACT Event dates stored in multiple rows pose many challenges that have typically been resolved

More information

Arthur L. Carpenter California Occidental Consultants, Oceanside, California

Arthur L. Carpenter California Occidental Consultants, Oceanside, California Paper 028-30 Storing and Using a List of Values in a Macro Variable Arthur L. Carpenter California Occidental Consultants, Oceanside, California ABSTRACT When using the macro language it is not at all

More information

PharmaSUG 2013 CC26 Automating the Labeling of X- Axis Sanjiv Ramalingam, Vertex Pharmaceuticals, Inc., Cambridge, MA

PharmaSUG 2013 CC26 Automating the Labeling of X- Axis Sanjiv Ramalingam, Vertex Pharmaceuticals, Inc., Cambridge, MA PharmaSUG 2013 CC26 Automating the Labeling of X- Axis Sanjiv Ramalingam, Vertex Pharmaceuticals, Inc., Cambridge, MA ABSTRACT Labeling of the X-axis usually involves a tedious axis statement specifying

More information

The Dataset Diet How to transform short and fat into long and thin

The Dataset Diet How to transform short and fat into long and thin Paper TU06 The Dataset Diet How to transform short and fat into long and thin Kathryn Wright, Oxford Pharmaceutical Sciences, UK ABSTRACT What do you do when you are given a dataset with one observation

More information

Are you Still Afraid of Using Arrays? Let s Explore their Advantages

Are you Still Afraid of Using Arrays? Let s Explore their Advantages Paper CT07 Are you Still Afraid of Using Arrays? Let s Explore their Advantages Vladyslav Khudov, Experis Clinical, Kharkiv, Ukraine ABSTRACT At first glance, arrays in SAS seem to be a complicated and

More information

SAS Macro Dynamics: from Simple Basics to Powerful Invocations Rick Andrews, Office of Research, Development, and Information, Baltimore, MD

SAS Macro Dynamics: from Simple Basics to Powerful Invocations Rick Andrews, Office of Research, Development, and Information, Baltimore, MD ABSTRACT CODERS CORNER SAS Macro Dynamics: from Simple Basics to Powerful Invocations Rick Andrews, Office of Research, Development, and Information, Baltimore, MD The SAS Macro Facility offers a mechanism

More information

Chapter 12: Indexing and Hashing. Basic Concepts

Chapter 12: Indexing and Hashing. Basic Concepts Chapter 12: Indexing and Hashing! Basic Concepts! Ordered Indices! B+-Tree Index Files! B-Tree Index Files! Static Hashing! Dynamic Hashing! Comparison of Ordered Indexing and Hashing! Index Definition

More information

%MISSING: A SAS Macro to Report Missing Value Percentages for a Multi-Year Multi-File Information System

%MISSING: A SAS Macro to Report Missing Value Percentages for a Multi-Year Multi-File Information System %MISSING: A SAS Macro to Report Missing Value Percentages for a Multi-Year Multi-File Information System Rushi Patel, Creative Information Technology, Inc., Arlington, VA ABSTRACT It is common to find

More information

Chapter 12: Indexing and Hashing

Chapter 12: Indexing and Hashing Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

There s No Such Thing as Normal Clinical Trials Data, or Is There? Daphne Ewing, Octagon Research Solutions, Inc., Wayne, PA

There s No Such Thing as Normal Clinical Trials Data, or Is There? Daphne Ewing, Octagon Research Solutions, Inc., Wayne, PA Paper HW04 There s No Such Thing as Normal Clinical Trials Data, or Is There? Daphne Ewing, Octagon Research Solutions, Inc., Wayne, PA ABSTRACT Clinical Trials data comes in all shapes and sizes depending

More information

How to Keep Multiple Formats in One Variable after Transpose Mindy Wang

How to Keep Multiple Formats in One Variable after Transpose Mindy Wang How to Keep Multiple Formats in One Variable after Transpose Mindy Wang Abstract In clinical trials and many other research fields, proc transpose are used very often. When many variables with their individual

More information

Base and Advance SAS

Base and Advance SAS Base and Advance SAS BASE SAS INTRODUCTION An Overview of the SAS System SAS Tasks Output produced by the SAS System SAS Tools (SAS Program - Data step and Proc step) A sample SAS program Exploring SAS

More information

To conceptualize the process, the table below shows the highly correlated covariates in descending order of their R statistic.

To conceptualize the process, the table below shows the highly correlated covariates in descending order of their R statistic. Automating the process of choosing among highly correlated covariates for multivariable logistic regression Michael C. Doherty, i3drugsafety, Waltham, MA ABSTRACT In observational studies, there can be

More information

A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY

A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY PharmaSUG 2014 - Paper BB14 A SAS Macro Utility to Modify and Validate RTF Outputs for Regional Analyses Jagan Mohan Achi, PPD, Austin, TX Joshua N. Winters, PPD, Rochester, NY ABSTRACT Clinical Study

More information

SAS Linear Model Demo. Overview

SAS Linear Model Demo. Overview SAS Linear Model Demo Yupeng Wang, Ph.D, Data Scientist Overview SAS is a popular programming tool for biostatistics and clinical trials data analysis. Here I show an example of using SAS linear regression

More information

Automating Preliminary Data Cleaning in SAS

Automating Preliminary Data Cleaning in SAS Paper PO63 Automating Preliminary Data Cleaning in SAS Alec Zhixiao Lin, Loan Depot, Foothill Ranch, CA ABSTRACT Preliminary data cleaning or scrubbing tries to delete the following types of variables

More information

Paper CC16. William E Benjamin Jr, Owl Computer Consultancy LLC, Phoenix, AZ

Paper CC16. William E Benjamin Jr, Owl Computer Consultancy LLC, Phoenix, AZ Paper CC16 Smoke and Mirrors!!! Come See How the _INFILE_ Automatic Variable and SHAREBUFFERS Infile Option Can Speed Up Your Flat File Text-Processing Throughput Speed William E Benjamin Jr, Owl Computer

More information

Coders' Corner. Paper Scrolling & Downloading Web Results. Ming C. Lee, Trilogy Consulting, Denver, CO. Abstract.

Coders' Corner. Paper Scrolling & Downloading Web Results. Ming C. Lee, Trilogy Consulting, Denver, CO. Abstract. Paper 71-25 Scrolling & Downloading Web Results Ming C. Lee, Trilogy Consulting, Denver, CO Abstract Since the inception of the INTERNET and Web Browsers, the need for speedy information to make split

More information

FSEDIT Procedure Windows

FSEDIT Procedure Windows 25 CHAPTER 4 FSEDIT Procedure Windows Overview 26 Viewing and Editing Observations 26 How the Control Level Affects Editing 27 Scrolling 28 Adding Observations 28 Entering and Editing Variable Values 28

More information

Efficient Processing of Long Lists of Variable Names

Efficient Processing of Long Lists of Variable Names Efficient Processing of Long Lists of Variable Names Paulette W. Staum, Paul Waldron Consulting, West Nyack, NY ABSTRACT Many programmers use SAS macro language to manipulate lists of variable names. They

More information

A Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys

A Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys A Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys Richard L. Downs, Jr. and Pura A. Peréz U.S. Bureau of the Census, Washington, D.C. ABSTRACT This paper explains

More information

Identifying Duplicate Variables in a SAS Data Set

Identifying Duplicate Variables in a SAS Data Set Paper 1654-2018 Identifying Duplicate Variables in a SAS Data Set Bruce Gilsen, Federal Reserve Board, Washington, DC ABSTRACT In the big data era, removing duplicate data from a data set can reduce disk

More information

Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C.

Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C. Paper 82-25 Dynamic data set selection and project management using SAS 6.12 and the Windows NT 4.0 file system Matt Downs and Heidi Christ-Schmidt Statistics Collaborative, Inc., Washington, D.C. ABSTRACT

More information

User-defined Functions. Conditional Expressions in Scheme

User-defined Functions. Conditional Expressions in Scheme User-defined Functions The list (lambda (args (body s to a function with (args as its argument list and (body as the function body. No quotes are needed for (args or (body. (lambda (x (+ x 1 s to the increment

More information

The Proc Transpose Cookbook

The Proc Transpose Cookbook ABSTRACT PharmaSUG 2017 - Paper TT13 The Proc Transpose Cookbook Douglas Zirbel, Wells Fargo and Co. Proc TRANSPOSE rearranges columns and rows of SAS datasets, but its documentation and behavior can be

More information

From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX

From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX Paper 152-27 From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX ABSTRACT This paper is a case study of how SAS products were

More information

PhUSE US Connect 2018 Paper CT06 A Macro Tool to Find and/or Split Variable Text String Greater Than 200 Characters for Regulatory Submission Datasets

PhUSE US Connect 2018 Paper CT06 A Macro Tool to Find and/or Split Variable Text String Greater Than 200 Characters for Regulatory Submission Datasets PhUSE US Connect 2018 Paper CT06 A Macro Tool to Find and/or Split Variable Text String Greater Than 200 Characters for Regulatory Submission Datasets Venkata N Madhira, Shionogi Inc, Florham Park, USA

More information

Generating a Detailed Table of Contents for Web-Served Output

Generating a Detailed Table of Contents for Web-Served Output Paper 089-29 Generating a Detailed Table of Contents for Web-Served Output Derek Morgan, Washington University Medical School, St. Louis, MO Steve Hoffner, Washington University Medical School, St. Louis,

More information

A Theory of Redo Recovery

A Theory of Redo Recovery A Theory of Redo Recovery David Lomet Microsoft Research Redmond, WA 98052 lomet@microsoft.com Mark Tuttle HP Labs Cambridge Cambridge, MA 02142 mark.tuttle@hp.com ABSTRACT Our goal is to understand redo

More information

Two Key JDK 10 Features

Two Key JDK 10 Features Supplement to Java: The Complete Reference, Tenth Edition Two Key JDK 10 Features This supplement to Java: The Complete Reference, Tenth Edition discusses two key features added by JDK 10. It is provided

More information

Introduction to MATLAB

Introduction to MATLAB Chapter 1 Introduction to MATLAB 1.1 Software Philosophy Matrix-based numeric computation MATrix LABoratory built-in support for standard matrix and vector operations High-level programming language Programming

More information

Chapter 11: Indexing and Hashing

Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

A Blaise Editing System at Westat. Rick Dulaney, Westat Boris Allan, Westat

A Blaise Editing System at Westat. Rick Dulaney, Westat Boris Allan, Westat A Blaise Editing System at Westat Rick Dulaney, Westat Boris Allan, Westat Introduction Editing and delivering survey data pose challenges often quite separate from developing Blaise applications for data

More information

A Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN

A Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN Paper 045-29 A Format to Make the _TYPE_ Field of PROC MEANS Easier to Interpret Matt Pettis, Thomson West, Eagan, MN ABSTRACT: PROC MEANS analyzes datasets according to the variables listed in its Class

More information

Let There Be Highlights: Data-driven Cell and Row Highlights in %TAB2HTM and %DS2HTM Output

Let There Be Highlights: Data-driven Cell and Row Highlights in %TAB2HTM and %DS2HTM Output Let There Be Highlights: Data-driven Cell and Row Highlights in %TAB2HTM and %DS2HTM Output Introduction The SAS System for Information Delivery provides powerful and flexible web publishing tools (SAS

More information

Poster Frequencies of a Multiple Mention Question

Poster Frequencies of a Multiple Mention Question Title Author Abstract Poster Frequencies of a Multiple Mention Question Leslie A. Christensen Market Research Analyst Sr. Market Planning & Research The Goodyear Tire & Rubber Company The poster will demonstrate

More information

CREATING A SUMMARY TABLE OF NORMALIZED (Z) SCORES

CREATING A SUMMARY TABLE OF NORMALIZED (Z) SCORES CREATING A SUMMARY TABLE OF NORMALIZED (Z) SCORES Walter W. OWen The Biostatistics Center The George Washington University ABSTRACT Data from the behavioral sciences are often analyzed by normalizing the

More information

Top Coding Tips. Neil Merchant Technical Specialist - SAS

Top Coding Tips. Neil Merchant Technical Specialist - SAS Top Coding Tips Neil Merchant Technical Specialist - SAS Bio Work in the ANSWERS team at SAS o Analytics as a Service and Visual Analytics Try before you buy SAS user for 12 years obase SAS and O/S integration

More information

Contents of SAS Programming Techniques

Contents of SAS Programming Techniques Contents of SAS Programming Techniques Chapter 1 About SAS 1.1 Introduction 1.1.1 SAS modules 1.1.2 SAS module classification 1.1.3 SAS features 1.1.4 Three levels of SAS techniques 1.1.5 Chapter goal

More information

Keeping Track of Database Changes During Database Lock

Keeping Track of Database Changes During Database Lock Paper CC10 Keeping Track of Database Changes During Database Lock Sanjiv Ramalingam, Biogen Inc., Cambridge, USA ABSTRACT Higher frequency of data transfers combined with greater likelihood of changes

More information

Simulator Driver PTC Inc. All Rights Reserved.

Simulator Driver PTC Inc. All Rights Reserved. 2017 PTC Inc. All Rights Reserved. 2 Table of Contents Simulator Driver 1 Table of Contents 2 Simulator Driver 3 Overview 3 Setup 4 Channel Properties General 4 Channel Properties Write Optimizations 5

More information

Merge Sort. Yufei Tao. Department of Computer Science and Engineering Chinese University of Hong Kong

Merge Sort. Yufei Tao. Department of Computer Science and Engineering Chinese University of Hong Kong Department of Computer Science and Engineering Chinese University of Hong Kong In this lecture, we will design the merge sort which sorts n elements in O(n log n) time. The algorithm illustrates a technique

More information

SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board

SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board SAS PROGRAM EFFICIENCY FOR BEGINNERS Bruce Gilsen, Federal Reserve Board INTRODUCTION This paper presents simple efficiency techniques that can benefit inexperienced SAS software users on all platforms.

More information

SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board

SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board SAS PROGRAM EFFICIENCY FOR BEGINNERS Bruce Gilsen, Federal Reserve Board INTRODUCTION This paper presents simple efficiency techniques that can benefit inexperienced SAS software users on all platforms.

More information

Bruce Gilsen, Federal Reserve Board

Bruce Gilsen, Federal Reserve Board SAS PROGRAM EFFICIENCY FOR BEGINNERS Bruce Gilsen, Federal Reserve Board INTRODUCTION This paper presents simple efficiency techniques that can benefit inexperienced SAS software users on all platforms

More information

Macros to Report Missing Data: An HTML Data Collection Guide Patrick Thornton, University of California San Francisco, SF, California

Macros to Report Missing Data: An HTML Data Collection Guide Patrick Thornton, University of California San Francisco, SF, California Macros to Report Missing Data: An HTML Data Collection Guide Patrick Thornton, University of California San Francisco, SF, California ABSTRACT This paper presents SAS macro programs that calculate missing

More information

Using SAS/SCL to Create Flexible Programs... A Super-Sized Macro Ellen Michaliszyn, College of American Pathologists, Northfield, IL

Using SAS/SCL to Create Flexible Programs... A Super-Sized Macro Ellen Michaliszyn, College of American Pathologists, Northfield, IL Using SAS/SCL to Create Flexible Programs... A Super-Sized Macro Ellen Michaliszyn, College of American Pathologists, Northfield, IL ABSTRACT SAS is a powerful programming language. When you find yourself

More information

Previously. Iteration. Date and time structures. Modularisation.

Previously. Iteration. Date and time structures. Modularisation. Lecture 7 Previously Iteration. Date and time structures. Modularisation. Today Pseudo code. File handling. Pseudo code Pseudocode is an informal high-level description of the operating principle of a

More information

STATION

STATION ------------------------------STATION 1------------------------------ 1. Which of the following statements displays all user-defined macro variables in the SAS log? a) %put user=; b) %put user; c) %put

More information

Variable-Prefix Identifiers (Adjustable Oid s)

Variable-Prefix Identifiers (Adjustable Oid s) Variable-Prefix Identifiers (Adjustable Oid s) William Kent Database Technology Department Hewlett-Packard Laboratories Palo Alto, California 1 Introduction Object identifiers come from various sources,

More information

A Tutorial on the SAS Macro Language

A Tutorial on the SAS Macro Language HW152 SESUG 2015 A Tutorial on the SAS Macro Language John J. Cohen, Advanced Data Concepts LLC, Newark, DE ABSTRACT The SAS Macro language is another language that rests on top of regular SAS code. If

More information

SAS Scalable Performance Data Server 4.3

SAS Scalable Performance Data Server 4.3 Scalability Solution for SAS Dynamic Cluster Tables A SAS White Paper Table of Contents Introduction...1 Cluster Tables... 1 Dynamic Cluster Table Loading Benefits... 2 Commands for Creating and Undoing

More information

Contents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions...

Contents Contents Introduction Basic Steps in Query Processing Introduction Transformation of Relational Expressions... Contents Contents...283 Introduction...283 Basic Steps in Query Processing...284 Introduction...285 Transformation of Relational Expressions...287 Equivalence Rules...289 Transformation Example: Pushing

More information

If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC

If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC Paper 2417-2018 If You Need These OBS and These VARS, Then Drop IF, and Keep WHERE Jay Iyengar, Data Systems Consultants LLC ABSTRACT Reading data effectively in the DATA step requires knowing the implications

More information

Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table

Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table Using SAS Macro to Include Statistics Output in Clinical Trial Summary Table Amy C. Young, Ischemia Research and Education Foundation, San Francisco, CA Sharon X. Zhou, Ischemia Research and Education

More information

Chapter 6: Deferred Report Writer

Chapter 6: Deferred Report Writer Chapter 6: Deferred Report Writer CHAPTER 6: DEFERRED REPORT WRITER... 1 DEFERRED REPORT WRITER OVERVIEW... 2 REPORT TITLE (TYPE 01 PARAMETER)... 3 Type 01 Parameter Fields... 3 EXPANDER OPTION (TYPE 02

More information

Cambridge International Examinations Cambridge International Advanced Level

Cambridge International Examinations Cambridge International Advanced Level Cambridge International Examinations Cambridge International Advanced Level *4193861875* COMPUTER SCIENCE 9608/42 Paper 4 Further Problem-solving and Programming Skills October/November 2016 PRE-RELEASE

More information

The New C Standard (Excerpted material)

The New C Standard (Excerpted material) The New C Standard (Excerpted material) An Economic and Cultural Derek M. Jones derek@knosof.co.uk Copyright 2002-2008 Derek M. Jones. All rights reserved. 1722 6.8.1 Labeled statements labeled statements

More information

GUIDE TO USING THE 2014 AND 2015 CURRENT POPULATION SURVEY PUBLIC USE FILES

GUIDE TO USING THE 2014 AND 2015 CURRENT POPULATION SURVEY PUBLIC USE FILES GUIDE TO USING THE 2014 AND 2015 CURRENT POPULATION SURVEY PUBLIC USE FILES INTRODUCTION Tabulating estimates of health insurance coverage, income, and poverty from the redesigned survey TECHNICAL BRIEF

More information

The Ugliest Data I've Ever Met

The Ugliest Data I've Ever Met The Ugliest Data I've Ever Met Derek Morgan, Washington University Medical School, St. Louis, MO Abstract Data management frequently involves interesting ways of doing things with the SASe System. Sometimes,

More information

Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3

Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3 Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3 Bruce Gilsen, Federal Reserve Board, Washington, DC ABSTRACT SAS Versions 9.2 and 9.3 contain many interesting

More information

1. a. Show that the four necessary conditions for deadlock indeed hold in this example.

1. a. Show that the four necessary conditions for deadlock indeed hold in this example. Tutorial 7 (Deadlocks) 1. a. Show that the four necessary conditions for deadlock indeed hold in this example. b. State a simple rule for avoiding deadlocks in this system. a. The four necessary conditions

More information

So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines

So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines Paper TT13 So Much Data, So Little Time: Splitting Datasets For More Efficient Run Times and Meeting FDA Submission Guidelines Anthony Harris, PPD, Wilmington, NC Robby Diseker, PPD, Wilmington, NC ABSTRACT

More information

A Better Perspective of SASHELP Views

A Better Perspective of SASHELP Views Paper PO11 A Better Perspective of SASHELP Views John R. Gerlach, Independent Consultant; Hamilton, NJ Abstract SASHELP views provide a means to access all kinds of information about a SAS session. In

More information

David Franklin Independent SAS Consultant TheProgramersCabin.com

David Franklin Independent SAS Consultant TheProgramersCabin.com Countdown of the Top 10 Ways to Merge Data Trivia The film The Poseidon Adventure is based on a real life event that involved the Queen Mary in 1942 the ship was hit by a 92 foot wave which listed the

More information

SAS CURRICULUM. BASE SAS Introduction

SAS CURRICULUM. BASE SAS Introduction SAS CURRICULUM BASE SAS Introduction Data Warehousing Concepts What is a Data Warehouse? What is a Data Mart? What is the difference between Relational Databases and the Data in Data Warehouse (OLTP versus

More information

The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data

The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data Paper PO31 The Power of PROC SQL Techniques and SAS Dictionary Tables in Handling Data MaryAnne DePesquo Hope, Health Services Advisory Group, Phoenix, Arizona Fen Fen Li, Health Services Advisory Group,

More information

PROC FORMAT: USE OF THE CNTLIN OPTION FOR EFFICIENT PROGRAMMING

PROC FORMAT: USE OF THE CNTLIN OPTION FOR EFFICIENT PROGRAMMING PROC FORMAT: USE OF THE CNTLIN OPTION FOR EFFICIENT PROGRAMMING Karuna Nerurkar and Andrea Robertson, GMIS Inc. ABSTRACT Proc Format can be a useful tool for improving programming efficiency. This paper

More information

Now That You Have Your Data in Hadoop, How Are You Staging Your Analytical Base Tables?

Now That You Have Your Data in Hadoop, How Are You Staging Your Analytical Base Tables? Paper SAS 1866-2015 Now That You Have Your Data in Hadoop, How Are You Staging Your Analytical Base Tables? Steven Sober, SAS Institute Inc. ABSTRACT Well, Hadoop community, now that you have your data

More information

Using PROC SQL to Generate Shift Tables More Efficiently

Using PROC SQL to Generate Shift Tables More Efficiently ABSTRACT SESUG Paper 218-2018 Using PROC SQL to Generate Shift Tables More Efficiently Jenna Cody, IQVIA Shift tables display the change in the frequency of subjects across specified categories from baseline

More information

Report Writing, SAS/GRAPH Creation, and Output Verification using SAS/ASSIST Matthew J. Becker, ST TPROBE, inc., Ann Arbor, MI

Report Writing, SAS/GRAPH Creation, and Output Verification using SAS/ASSIST Matthew J. Becker, ST TPROBE, inc., Ann Arbor, MI Report Writing, SAS/GRAPH Creation, and Output Verification using SAS/ASSIST Matthew J. Becker, ST TPROBE, inc., Ann Arbor, MI Abstract Since the release of SAS/ASSIST, SAS has given users more flexibility

More information

How to Go From SAS Data Sets to DATA NULL or WordPerfect Tables Anne Horney, Cooperative Studies Program Coordinating Center, Perry Point, Maryland

How to Go From SAS Data Sets to DATA NULL or WordPerfect Tables Anne Horney, Cooperative Studies Program Coordinating Center, Perry Point, Maryland How to Go From SAS Data Sets to DATA NULL or WordPerfect Tables Anne Horney, Cooperative Studies Program Coordinating Center, Perry Point, Maryland ABSTRACT Clinical trials data reports often contain many

More information

Tales from the Help Desk 6: Solutions to Common SAS Tasks

Tales from the Help Desk 6: Solutions to Common SAS Tasks SESUG 2015 ABSTRACT Paper BB-72 Tales from the Help Desk 6: Solutions to Common SAS Tasks Bruce Gilsen, Federal Reserve Board, Washington, DC In 30 years as a SAS consultant at the Federal Reserve Board,

More information

Data Mining Part 3. Associations Rules

Data Mining Part 3. Associations Rules Data Mining Part 3. Associations Rules 3.2 Efficient Frequent Itemset Mining Methods Fall 2009 Instructor: Dr. Masoud Yaghini Outline Apriori Algorithm Generating Association Rules from Frequent Itemsets

More information

Statistics without DATA _NULLS_

Statistics without DATA _NULLS_ Statistics without DATA _NULLS_ Michael C. Palmer and Cecilia A. Hale, Ph.D.. The recent release of a new software standard can substantially ease the integration of human, document, and computer resources.

More information

Oracle Data Warehousing Pushing the Limits. Introduction. Case Study. Jason Laws. Principal Consultant WhereScape Consulting

Oracle Data Warehousing Pushing the Limits. Introduction. Case Study. Jason Laws. Principal Consultant WhereScape Consulting Oracle Data Warehousing Pushing the Limits Jason Laws Principal Consultant WhereScape Consulting Introduction Oracle is the leading database for data warehousing. This paper covers some of the reasons

More information

Operating-System Structures

Operating-System Structures Operating-System Structures System Components Operating System Services System Calls System Programs System Structure System Design and Implementation System Generation 1 Common System Components Process

More information

X Language Definition

X Language Definition X Language Definition David May: November 1, 2016 The X Language X is a simple sequential programming language. It is easy to compile and an X compiler written in X is available to simplify porting between

More information

A Macro that can Search and Replace String in your SAS Programs

A Macro that can Search and Replace String in your SAS Programs ABSTRACT MWSUG 2016 - Paper BB27 A Macro that can Search and Replace String in your SAS Programs Ting Sa, Cincinnati Children s Hospital Medical Center, Cincinnati, OH In this paper, a SAS macro is introduced

More information

Chapter 18 Indexing Structures for Files

Chapter 18 Indexing Structures for Files Chapter 18 Indexing Structures for Files Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Disk I/O for Read/ Write Unit for Disk I/O for Read/ Write: Chapter 18 One Buffer for

More information

Data Replication in Offline Web Applications:

Data Replication in Offline Web Applications: Data Replication in Offline Web Applications: Optimizing Persistence, Synchronization and Conflict Resolution Master Thesis Computer Science May 4, 2013 Samuel Esposito - 1597183 Primary supervisor: Prof.dr.

More information

. Help Documentation. This document was auto-created from web content and is subject to change at any time. Copyright (c) 2019 SmarterTools Inc.

. Help Documentation. This document was auto-created from web content and is subject to change at any time. Copyright (c) 2019 SmarterTools Inc. Help Documentation This document was auto-created from web content and is subject to change at any time. Copyright (c) 2019 SmarterTools Inc. Mail Folders A folder in SmarterMail is the general method

More information

V6 Programming Fundamentals: Part 1 Stored Procedures and Beyond David Adams & Dan Beckett. All rights reserved.

V6 Programming Fundamentals: Part 1 Stored Procedures and Beyond David Adams & Dan Beckett. All rights reserved. Summit 97 V6 Programming Fundamentals: Part 1 Stored Procedures and Beyond by David Adams & Dan Beckett 1997 David Adams & Dan Beckett. All rights reserved. Content adapted from Programming 4th Dimension:

More information

Leave Your Bad Code Behind: 50 Ways to Make Your SAS Code Execute More Efficiently.

Leave Your Bad Code Behind: 50 Ways to Make Your SAS Code Execute More Efficiently. Leave Your Bad Code Behind: 50 Ways to Make Your SAS Code Execute More Efficiently. William E Benjamin Jr Owl Computer Consultancy, LLC 2012 Topic Groups Processing more than one file in each DATA step

More information

Untangling and Reformatting NT PerfMon Data to Load a UNIX SAS Database With a Software-Intelligent Data-Adaptive Application

Untangling and Reformatting NT PerfMon Data to Load a UNIX SAS Database With a Software-Intelligent Data-Adaptive Application Paper 297 Untangling and Reformatting NT PerfMon Data to Load a UNIX SAS Database With a Software-Intelligent Data-Adaptive Application Heather McDowell, Wisconsin Electric Power Co., Milwaukee, WI LeRoy

More information

Sencer Yeralan and Helen Emery Gainesville, Florida January 2000

Sencer Yeralan and Helen Emery Gainesville, Florida January 2000 Preface This book is an outgrowth of the notes and experiments developed for the graduate classes at the University of Florida. It is intended for students, hobbyists, engineers, and scientists who would

More information

BreakOnWord: A Macro for Partitioning Long Text Strings at Natural Breaks Richard Addy, Rho, Chapel Hill, NC Charity Quick, Rho, Chapel Hill, NC

BreakOnWord: A Macro for Partitioning Long Text Strings at Natural Breaks Richard Addy, Rho, Chapel Hill, NC Charity Quick, Rho, Chapel Hill, NC PharmaSUG 2014 - Paper CC20 BreakOnWord: A Macro for Partitioning Long Text Strings at Natural Breaks Richard Addy, Rho, Chapel Hill, NC Charity Quick, Rho, Chapel Hill, NC ABSTRACT Breaking long text

More information

EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT)

EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT) EXAMPLE 3: MATCHING DATA FROM RESPONDENTS AT 2 OR MORE WAVES (LONG FORMAT) DESCRIPTION: This example shows how to combine the data on respondents from the first two waves of Understanding Society into

More information

Introduction to Programming, Aug-Dec 2006

Introduction to Programming, Aug-Dec 2006 Introduction to Programming, Aug-Dec 2006 Lecture 3, Friday 11 Aug 2006 Lists... We can implicitly decompose a list into its head and tail by providing a pattern with two variables to denote the two components

More information