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.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.