簡體   English   中英

如何計算SAS中變量的范圍?

[英]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.

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