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.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.