Here is the sample code for file creation. When I use DSD option in the file statement, it is putting double quotes around field A in the output file whereas without DSD option it gives an extra space for missing fields. Any one has a solution?
fieldval|newfield|new| |1
"fieldval|newfield"|new||1
Its putting double quotes because your delimiter is a pipe and your Field A also has a pipe.
options missing='';
data one;
a='fieldval|newfield';
b='new';
c='';
d='1';
run;
filename outfile "/uhome/snoone/test.txt" ;
data _null_;
set one;
file outfile DELIMITER='|' dropover dsd lrecl=1000;
put a
b
c
d;
run;
Sorry, what is the question here, you seem to have your answer?
" Its putting double quotes because your delimiter is a pipe and your Field A also has a pipe. "
If your data contains the delimiter, then it has to quote the string otherwise delimeters will get messed up. Sort your input dataset out:
data one;
a1='fieldval';
a2='newfield';
b='new';
c='';
d='1';
run;
And the problem will go away.
Edit: Alternatively change your delimiter. The point about delimited files is that the delimiter only appears between data items.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.