首页 > 解决方案 > SAS 变量值与指定的格式不匹配

问题描述

我有一个 SAS 数据集。当我“查看列”时,我发现一列 Type=text,length=3,informat = $3.,format=$3。此变量中存储的值为 10。

但是根据属性,不应该存储为010吗?

标签: sas

解决方案


属性说你有一个可以容纳 3 个字节的字符变量(普通字符编码每个字符使用一个字节)。您可以将“010”存储在该变量或“10”甚至“10”中。您还可以存储“ABC”或“abc”。它只是一个字符变量。请注意,SAS 始终存储固定长度的字符字段,因此较短的值用空格填充。

它还可选地添加了 FORMAT 元数据,说明在显示值时 SAS 应该使用 $3。格式。同样,它有可选的元数据,说明在阅读文本时应该使用 $3。informat 将传入的文本转换为要存储的值。

不需要此元数据,因为 SAS 已经知道如何读取和显示字符数据。如果您确实使用前导空格存储值,您可能希望附加$CHAR3.格式,以便在写入值时保留前导空格。


推荐阅读