我有一个SAS数据集。当我“查看列”时,我发现一列具有Type = text,length = 3,informat = $ 3.,format = $ 3的列。 存储在此变量中的值为10。
但是根据属性,是否不应该将其存储为010?
答案 0 :(得分:2)
这些属性表示您有一个字符变量,可以容纳3个字节(普通字符编码每个字符使用一个字节)。您可以将“ 010”存储在该变量中,也可以存储“ 10”甚至“ 10”。您还可以存储“ ABC”或“ abc”。它只是一个字符变量。请注意,SAS始终存储固定长度的字符字段,因此较短的值将用空格填充。
它还可选地添加了FORMAT元数据,表示在显示值时SAS应该使用$ 3。格式。同样,有可选的元数据表示在阅读文本时应使用$ 3。 informat将传入的文本转换为要存储的值。
不需要此元数据,因为SAS已经知道如何读取和显示字符数据。如果您确实使用前导空格存储值,则可能需要附加$CHAR3.
格式,以便在写入值时保留前导空格。
答案 1 :(得分:1)
由于变量只是文本,因此它将仅存储分配的内容。例如:
data have;
length var1 $ 3;
informat var1 $3.;
format var1 $3.;
input var1;
datalines;
10
010
;
其格式为$ 3的事实。从$ w 的documentation可以看出,它不会以0开头。格式,未提及。同样,该值以后可以更改为“ ab”;在这两种情况下,值都用尾随空格填充以补足3的长度。