JMQ*_*JMQ 1 sas variable-length
我在数据集 OLD 上有一个名为 ID 的变量,我需要将长度从 13 更改为 12 以进行合并。以下是与该变量关联的元数据。
Variable Type Len Format Informat Label
ID Char 13 $12. $12. 'Person ID'
Run Code Online (Sandbox Code Playgroud)
(此文件中每个 ID 值的内容始终恰好是 12 个字符)
当我尝试编辑 DATA 步骤中 set 语句之前的长度时,我收到警告。当我编辑长度和格式时也会发生同样的情况。
data NEW;
length ID $12;
format ID $12.;
set OLD;
run;
...
WARNING: Multiple lengths were specified for the variable AN_RESEARCHID by
input data set(s). This can cause truncation of data.
Run Code Online (Sandbox Code Playgroud)
SAS 社区论坛的示例似乎没有描述为什么会出现此警告,或者如何避免它。有什么想法吗?
您可以在 SET 语句中重命名原始变量,并创建具有所需长度的新变量。然后在数据步骤中将新变量设置为等于旧变量。您不会收到警告。但当然,它警告您的内容仍然有效 - 也就是说,如果您的数据恰好有 13 个字符,那么当将其塞入长度较短的变量时,它会截断该值。
data NEW(drop=ID_orig);
length ID $12;
set old(rename=(ID=ID_orig));
ID= ID_orig;
run;
Run Code Online (Sandbox Code Playgroud)