SAS學習之查詢異常值

2021-08-26 12:38:23 字數 2035 閱讀 7253

1.查詢缺失值的萬能程式

data missing;

set sasuser.xb;

array cha[*] _character_ \*利用*好不指定cha陣列中的字元型變數個數*\

do i=1 to dim(cha); \*指定迴圈次數為陣列cha中的元素數*\

if missing(cha[i]) then output;

end;

array num[*] _numeric_;\*利用*號不指定num數中的數值型變數個數*\

do i=1 to dim(num); \*指定迴圈次數為陣列num中的元素數*\

if missing(num[i]) then output;

end;

proc print;

run;

cha[*]和num[*]的意思是建立陣列cha和num,但不指定陣列中的元素數,具體有多少個由sas根據變數來自己判斷。

dim()函式是專門針對陣列的函式,它的作用是返回指定陣列所含的元素個數。如指定陣列array x[*]a b c,則dim(x)返回值為3.

2.查詢異常值

基本格式為:

data 新資料集;

set 已有資料集;

if|where 條件語句;

proc print;

run;

這幾句語句的意思是建立乙個新資料集,然後利用set語句把所有的資料集複製進來,但並非全部複製,而是根據if或where語句指定的條件,僅複製符合條件(如缺失或異常等)的記錄。

**if和where的區別

1)if和where都可以使用的場合

在利用set語句有條件地複製資料集時,set後緊跟著條件語句,此時用if和where都可以。但where的執行速度要快一點。

2)只能用if的幾種場合

使用sas的自動變數時;如果指定的條件變數是新產生的變數,只能用if,不能用where。

3)只能用where的幾種場合

當使用某些特殊運算子時(between…and,contains);當呼叫某一proc過程時,如果要選擇部分觀測執行該過程,只能用where語句,不能用if語句。

還有當做資料集選項使用時,只能用where,不能用if。

3.查詢異常值的萬能程式

%let data=sasuser.xb;

%let id=id;

%macro outline(var=,low=,high=);

data outline;

set &data.(keep=&id. &var.);

length variable $20. reason $20.;

variable="&var.";

value=&var.;

if &var.<&low. and not missing(&var.) then do;

reason="過低";

output;

end;

else if &var.>&high. and not missing (&var.) then do;

reason="過高";

output;

end;

drop &var.;

run;

%mend outline;

%outline(var=height,low=150,high=200);

%outline(var=weight,low=40,high=100);

%outline(var=y1,low=1,high=5);

%outline(var=y2,low=1,high=5);

%outline(var=y3,low=1,high=5);

%outline(var=y4,low=1,high=5);

%outline(var=y5,low=1,high=5);

proc print data=outliner1;

run;

需要修改的地方:第一行的資料集;第二行的id變數;最後幾行的7個outline。

SAS學習筆記(七) 關於異常值處理

sas中對於類別變數 離散 分布觀察用proc freq,對於連續變數則用proc univariate來完成。識別連續型變數的異常值通常稱為盒形圖,一般採用 proc univariate data train plot var variable run plot選項輸出變數的莖葉圖 觀測數少 或...

機器學習 異常值檢測

在生產生活中,由於裝置的誤差或者人為操作失當,產品難免會出現錯誤。然後檢查錯誤對人來說又是乙個十分瑣碎的事情。利用機器學習進行異常值檢測可以讓人類擺脫檢錯的煩惱。sum limits m sum limits m p x prod limits n sigma j 2 異常檢測演算法是乙個非監督學習...

資料預處理之異常值處理

異常值,即在資料集中存在不合理的值,又稱離群點。比如年齡為 1,膝上型電腦重量為1噸等,都屬於異常值的範圍。從集合角度來看,異常值即離群點,如下圖所示 對屬性值進行乙個描述性的統計,從而檢視哪些值是不合理的。比如對年齡這個屬性進行規約 年齡的區間在 0 200 如果樣本中的年齡值不再該區間範圍內,則...