[英]How do I calculate range of a variable in SAS?
我在SAS中有一個表,該表的變量為X。我只想知道X的范圍,所以我使用了PROC UNIVARIATE,但是它還提供了許多其他信息。 我一直在嘗試通過以下方式使用RANGE函數,但不會產生任何結果。 請幫忙!
DATA DATASET2;
SET DATASET1;
R=RANGE(X);
KEEP R;
RUN;
PROC PRINT DATASET2;
跑;
范圍函數用於一行內,並且您已經嘗試過用於列,因此可能會得到零。 范圍功能可以如下使用。
R= range(x,y,x);
對於列內,您需要使用proc手段。
proc means data=sashelp.class range maxdec=2;
var age;
run;
或通過使用proc sql如下所示。
proc sql;
select max(age) -min(age) as range
from sashelp.class;
您還可以在proc sql中使用range函數,該函數在列而不是行上運行:
proc sql;
select range(age) from sashelp.class;
quit;
如果您不喜歡sql,也可以在數據步驟中進行此操作:
data _null_;
set sashelp.class end = eof;
retain min_age max_age;
min_age = min(age,min_age);
max_age = max(age,max_age);
if eof then do;
range = max_age - min_age;
put range= min_age= max_age=;
end;
run;
或等效地:
data _null_;
do until (eof);
set sashelp.class end = eof;
min_age = min(age,min_age);
max_age = max(age,max_age);
end;
range = max_age - min_age;
put range= min_age= max_age=;
run;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.