当数字位于名称的末尾时,处理变量的编号列表要容易得多。 引用变量时可以使用变量列表。 许多按字母顺序对变量进行排序的过程(例如 PROC CONTENTS)将像人类一样对待数字后缀。 例如,如果我使用名为 var1 到 var10 的变量创建数据集,但以其他顺序创建它们:
data have; length var2 var4 var1 var10 var3 var5 var8 var9 var7 var6 8;run;然后在数据集上运行 PROC CONTENTS,默认情况下会列出从 1 到 10 的内容。
但是如果我在名称后添加后缀,则不会发生这种情况。
如果您正在谈论变量在数据集中的实际位置(添加 VARNUM 选项时 PROC CONTENTS 显示的内容),那么组合大量数据集并按您想要的位置顺序获取变量的最简单方法是使用一些模板或您已经创建的骨架数据集,并将其作为第一个数据集。
data want; set skeleton(obs=0) ds1 ds2 dslast ;run;同样,在变量末尾添加数字也将使使用其他设置变量顺序的方法变得更容易。 例如,您可以使用 RETAIN 语句(在一个非常简单的数据步骤中)来强制变量顺序。
data want; retain var1-var10; set have ;run;这是有效的,因为 RETAIN 语句强制数据步骤编译器将变量添加到数据集中,但它尚未强制编译器决定它们应该具有什么类型(和长度)。 因此,当它们最终出现在 SET 语句引用的数据集中时,编译器将确定类型。