基于多个变量进行排序2025年3月17日 | 阅读 3 分钟 在上一个主题中,我们学习了 SAS 中的 PROC sort,并且了解到可以按照升序或降序以及基于我们自己选择的变量对数据值进行排序。我们还学习了可以通过同时采用多个变量来执行排序,但我们尚未实际执行它。 现在,让我们看看如何使用多个变量对数据值进行排序,以及它的局限性是什么。 SAS 允许进行多变量排序,因此我们可以同时对多个变量进行排序。但是请考虑一下,如果我们指示 SAS 以升序(或默认)顺序对多个变量进行排序,并且它们都包含整数值,那么 SAS 应该选择哪个变量进行排序呢?让我们通过一个例子来理解在上面的例子中,我们给出了 roll 和 age 两个变量进行排序,并且两者都是整数值,那么 SAS 应该选择哪个变量进行排序,roll 还是 age?答案是,SAS 将考虑首先声明的变量,即 roll,如果第一个变量具有两个或多个相同的值,那么它将考虑第二个变量进行排序。 示例假设有一个名为 student 的数据集,它包含一个班级学生的数据,例如学号、姓名、游戏、年龄、体重和身高。 对于排序,我们使用两个变量,即体重和年龄,并且排序顺序是默认的。 在 SAS studio 中运行代码 ![]() 输出 ![]() 在输出中,我们可以看到排序是基于体重完成的。但是三个学生的体重相同,因此在这种情况下,它会考虑年龄(仅对这三个相同的值进行排序,并且在这些值之后它将再次跳转到体重),这是第二个声明的变量。 请看另一个示例,其中首先提到了包含字母值的变量 name。 在 SAS studio 上运行代码 ![]() 输出 ![]() 我们可以在输出中看到,它也根据首先提到的变量名进行排序。 局限性SAS 排序存在一个限制。在一种情况下,当我们引用一个包含字母数据的变量进行排序时,但有些值以大写字母开头,有些值以小写字母开头,那么排序的顺序是这样的,大写字母首先排序,小写字母排在最后。让我们看一个例子 在 SAS studio 上运行代码 ![]() 输出 ![]() 我们可以在输出中看到,以大写字母开头的数据值首先排序,而以小写字母开头的值最后排序。 下一个主题SAS - 合并数据集 |
我们请求您订阅我们的新闻通讯以获取最新更新。