在SAS中,“dsd”选项代表什么?

时间:2013-12-30 03:55:43

标签: sas

我有一个简单的问题。

我正在学习SAS并遇到了dsd=选项。

有谁知道这代表什么?它可能有助于记忆/情境化。

感谢。

4 个答案:

答案 0 :(得分:10)

而不是仅仅从互联网上复制和粘贴文本。我会尝试更清楚地解释一下。与分隔符DLM=一样,DSD是可以在infile语句中使用的选项。

假设已使用DLM=指定了分隔符,我们使用了DSD。如果SAS看到两个并排的分隔符或它们之间只有空白空格,那么它会将其识别为缺失值。

例如,如果文本文件dog.txt包含行:

171,255,,dog 

然后,

data test;
    infile 'C:\sasdata\dog.txt' DLM=',' DSD;
    input A B C D $;
run;

将输出:

                               A      B     C     D

                              171    255    .    dog

因此,C表示缺少变量.。如果我们没有使用DSD,它将作为无效数据返回。

答案 1 :(得分:8)

DSD 分隔符敏感数据

  

指定当数据值用引号括起来时,   值中的分隔符被视为字符数据。 DSD   选项更改SAS在使用LIST输入时如何处理分隔符   将默认分隔符设置为逗号。指定DSD时,SAS   将两个连续的分隔符视为缺失值并删除   来自字符值的引号。

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000146932.htm

答案 2 :(得分:8)

DSD代表Delimiter-Sensitive Data。

  

infile语句中的DSD(分隔符敏感数据)为您做了三件事。 1:它忽略用引号括起来的数据值中的分隔符; 2:它忽略了引号作为数据的一部分; 3:它将连续的两个连续分隔符视为缺失值。

来源:easy sas

答案 3 :(得分:0)

DSD是指在缺少数据时背靠背分隔符的分隔数据文件。过去,创建分隔文件的程序总是为丢失的数据留空。然而,今天,pc软件没有填空,这意味着分隔符不是分开的。 INFILE语句的DSD选项告诉SAS注意这一点。下面是示例(使用逗号分隔值)来说明:

Old Way:    5,4, ,2, ,1    ===> INFILE 'file' DLM=',' ... etc
New Way:    5,4,,2,,1     ===>  INFILE 'file' DLM=',' DSD ... etc.

Refer

reference