Hi,
I'm using the following to create a text delimited file. However for the fields that have null value, the output text file is generating a space between the delimiters. Is there any way to get rid of the blanks ?
I cannot use proc export as I cannot customise the header and trailer (or is it possible to customise headers/trailers in proc export ?)
Thanks !
data _null_;
dt= datetime();
format dt YMDHMS.;
format Business_Date b8601da.;
format OBS Z8.;
format amount_SUM Z20.;
retain amount_SUM;
set sas_extract_formatted end=EFIEOD NOBS=OBS;
FILE 'C:\Users\f051615\rawfile.txt' DLM='~' LINESIZE=1000; /* Output Text File */
if _n_ = 1 then do;
PUT "H~SASX~" Business_Date dt;
end;
do;
amount_SUM=sum(amount_SUM,amount_Final);
/*put (_all_)(+0);*/
PUT 'D~'
Business_Date
Month_Key
Period_Id
Customer_Id
end; |
if EFIEOD then do; | |
PUT "T~" OBS CEA_SUM; | |
end; |
run ;
Your code was either not correctly pasted or contains errors. The second PUT lacks a semicolon before the end;
I also think that you wanted to output amount_SUM instead of CEA_SUM in the final PUT
To suppress the blanks for empty strings, use the DSD option in the FILE statement.
thank you !
Sorry I must have copied and pasted incorrectly.
the DSD option worked.
Then please mark the question as answered.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.