Suppose you are reading a comma separated file, but your data contains commas in it. For example, say your file contains age name and weight and looks like the one below.
48,'Bill Clinton',210 50,'George Bush, Jr.',180
Say you read this file as you would any other comma delimited file, like the example shown below.
DATA guys1; length name $ 20 ; INFILE 'readdsd2.txt' DELIMITER=',' ; INPUT age name weight ; RUN; PROC PRINT DATA=guys1; RUN;
But, as we see below, the data were not read as we wished. The quotes are treated as data, and George Bush lost the , Jr off his name, and his weight is missing. This is because SAS treated the , in George Bush’s name as a indicating the end of the variable, which is not what we wanted.
OBS NAME AGE WEIGHT1 'Bill Clinton' 48 210 2 'George Bush 50 .
Below, we use the dsd option to read the same file.
DATA guys2; length name $ 20 ; INFILE 'readdsd2.txt' DELIMITER=',' DSD ; INPUT age name weight ; RUN; PROC PRINT DATA=guys2; RUN;
As you see in the output below, SAS properly treated the quotes as delimiters, and it read in Mr. Bush’s name properly and his weight properly.
OBS NAME AGE WEIGHT 1 Bill Clinton 48 210 2 George Bush, Jr. 50 180