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.
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.
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.
Ready to level-up your skills? Choose your own adventure.