嗨,我正在处理一个问题,我导入了一个Excel文件到SAS,我需要对棒球运动员的工资进行排序,并打印前十名最高的工资。我试图对它进行排序,但它只从最大到最小的顺序对我的数据集中的前十个观察值进行排序,而不是从整个数据集中获得前十个最高的薪水。下面是我的代码。
proc sort data=MLB out=salaries_sorted;
format Salary dollar12.3;
by descending Salary descending Year;
proc print data=MLB (obs=10);
run;发布于 2021-01-29 15:04:23
在此代码中:
proc sort data=MLB out=salaries_sorted;
format Salary dollar12.3;
by descending Salary descending Year;您将获取输入数据集MLB,并创建一个新的排序表salaries_sorted。您在那里添加了一种格式(我不确定它是否有效,但即使它有效,也是一个非常不寻常的位置),然后告诉它如何排序(按薪水和年份,均按降序)。
然后,在下面的代码中:
proc print data=MLB (obs=10);
run;您打印的是MLB数据集的前10个观测值,而不是排序后的数据集。
为了打印排序后的数据集的前10行,您需要执行以下操作:
proc print data=salaries_sorted(obs=10);
run;如果您不想更改名称,可以跳过out=salaries_sorted部件(然后MLB数据集本身将被排序),但通常情况下,排序到一个新的数据集是一个好的做法。
https://stackoverflow.com/questions/65948802
复制相似问题