gpt4 book ai didi

sas - 如何使用SAS中的“数据”步骤对数据进行排序

转载 作者:行者123 更新时间:2023-12-04 17:30:49 25 4
gpt4 key购买 nike

我想在SAS数据步骤中对数据进行排序。我的确切意思是:proc sort的工作应该在数据步骤中完成。有什么解决办法吗?

最佳答案

如果您正在寻找仅数据步骤的解决方案,则可以使用hash table来完成PROC SORT的工作。需要注意的是,您需要足够的内存来执行此操作。

如果要进行简单排序,则可以使用ordered:'yes'选项加载哈希表,并将其输出到新表中。默认情况下,ordered:yes将按升序对数据进行排序。您也可以指定descending

简单排序

data _null_;

/* Sets up PDV without loading the table */
if(0) then set sashelp.class;

/* Load sashelp.class into memory ordered by Height. Do not remove duplicates. */
dcl hash sortit(dataset:'sashelp.class', ordered:'yes', multidata:'yes');

sortit.defineKey('Height'); * Order by height;
sortit.defineData(all:'yes'); * Keep all variables in the output dataset;

sortit.defineDone();

/* Output to a dataset called class_sorted */
sortit.Output(dataset:'class_sorted');
run;

重复删除

要删除重复项,请执行完全相同的操作,除了删除 multidata选项。在下表中,观察值(8、9)和(15、16)相互重复。观察结果9和16将被消除。
data _null_;

/* Sets up PDV without loading the table */
if(0) then set sashelp.class;

/* Load sashelp.class into memory ordered by Height. Do not keep duplicates. */
dcl hash sortit(dataset:'sashelp.class', ordered:'yes');

sortit.defineKey('Height'); * Order by height;
sortit.defineData(all:'yes'); * Keep all variables in the output dataset;
sortit.defineDone();

/* Output to a dataset called class_sorted */
sortit.Output(dataset:'class_sorted');
run;

关于sas - 如何使用SAS中的“数据”步骤对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47863741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com