TOPIC: TRIM
Append or update?
25th November 2007SAS can generate many types of output: plain text, XML, PDF, RTF, Excel, etc. With all of these and the SAS procedures like PROC REPORT
, PROC TABULATE
and so on, it might seem surprising for me to say that I have been generating output with data step PUT
and FILE
statements. There was, of course, a reason for this: creating text files for loading into a new database-driven software application. At one stage, I also did some data interleaving at the output stage and that's when I discovered that the default behaviour for SAS FILE
statements is to completely overwrite a file unless the MOD
option was specified. Adding that switches on APPEND
behaviour. The code below adds a header in one step, while adding data below it in another. While I know that there are better ways to achieve this, like setting up your data as you want it or using _N_
to ensure that something only appears once, here's another way. As per the Perl, there's often more than one way to do something with SAS.
data _null_;
file ds_data;
put "fieldtype;datasetname;datasetlabel;datasetlayout;datasetclass;datasetstandardversion";
run;
data _null_;
set ds_ispec;
file ds_data mod;
line="datasetstandard;"||trim(memname)||";"||trim(memlabel)||";;;"||trim(memver);
put line;
run;