簡體   English   中英

SAS Proc等級/過程SQL

[英]SAS Proc Rank/Proc SQL

我有一個類似於的數據集

data NATR332;
input Y1 Y2;
datalines;
146 141
141 143
135 139
142 139
140 140
143 141
138 138
137 140
142 142
136 138
run;`

我使用proc sql查找Y1和Y2之間的差異,並通過使用代碼刪除了差異= 0的行

proc SQL;
/*create table temp as*/
select *,
Y1 - Y2 as Difference
from NATR332
where (Y1-Y2 ^= 0)
;

現在,我想創建一個名為rank的新列,在其中對差異的絕對值進行排名。 我嘗試在proc sql的分區上使用rank(),但沒有任何運氣,所以我想我可能必須使用proc rank函數。 我將如何創建此列? 我對SQL的了解遠比對sas更為熟悉,因此在使用sas時,我嘗試在proc sql中完成大部分工作。

先感謝您。

我將執行以下操作:

data diffs;
set NATR332;
difference = abs(Y1-Y2);
if difference ne 0;
run;

proc rank data=diffs descending out=diffs_ranked;
var difference;
ranks ranking;
run;

您有一個名為diffs_ranked的數據集和一個名為diffs_ranked的變量ranking該變量保存排名,由於降序選擇,因此排名從大到小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM