sas常用选项
System options:
obs:表示需要處理的最后一行observation,如果指定其為max,就表示處理到最后一條observation
firstobs:表示需要從第幾行observation開始處理,默認是1observation
msglevel:默認值是N,僅打印notes,warnings和error信息,如果設為I,則除了打印N選項的信息,同時打印附屬信息,包括索引的使用,合并處理,排序等附加信息
errors:指定最多有多少錯誤可以在log中顯示(也可以寫成error=num,編譯時按errors處理)
macrogen:將宏擴展的結果顯示在log里
compress:是否采用壓縮格式存儲數據集
missing:指定用于替換missing value的字符,默認是(.)
ps(pagesize):輸出時每頁行數
ls(linesize):輸出時每行字數
center/nocenter:指定輸出是否中間對齊
date/nodate:指定輸出是否包含日期
replace/noreplace:如果dataset已經存在,指定是否覆蓋
print/noprint:指定是否在output窗口輸出
Data step options:
obs:表示需要處理的最后一行observation,如果指定其為max,就表示處理到最后一條observation
firstobs:表示需要從第幾行observation開始處理,默認是1
Proc sort options:
nodupkey :保證by子句指定的排序key是唯一的,如果排序前的數據集若干記錄的排序key的值相同,則只保留一條記錄,刪除其他的;如果刪除行為確實發生,log中會有記錄,我們常用這個方法來檢查數據集的uniq key是否唯一,也就是用于排序的by子句指定的用于排序的變量列表是否完備。
Proc summary options:
nway:只將最大的_TYPE_值指定的分類進行輸出,_TYPE_值表示分類級別
e.g.?proc summary data=test;
class stat salesrep;
var sales;
output out=test2
sum(sales)=totsales
max(sales)=maxsales
nmiss(sales)=badsales
;
run;
這里_TYPE_=
0:表示整個數據集
1:表示基于每個salesrep的統計
2:表示基于每個stat的統計
3:表示基于每個stat中的每個salesrep的統計
如果在本例中指定nway,就會輸出基于每個stat中的每個salesrep的統計(_TYPE_=3)
missing:將missing值作為一個有效的類進行統計
Data step infile:
DLM:delimiter, DLM=',' 或者寫作delimiter=',',如果有多個字符一起作為分隔符,比如:
1!2+3!4
a+3!5!4
可以寫作delimiter='!+'
DSD:配合DLM使用,將連續兩個分隔符看作missing value,將引號引用的部分作為值賦給變量,從而忽略引號
MISSOVER:如果一行數據不完整,不要跳到下一行讀取,而是將剩余變量全部賦為missing value后再跳到下一行繼續讀取
LRECL: 默認讀取時,一行的buffer只有256bytes,如果行長超過這個默認值,自己需要用此選項指定行buffer,使之能足夠容納一行的數據。比如:LRECL=32767。
Data step set:
nobs: 定義用于存儲觀察數目的變量,nobs=變量名
如:
data test;
set srcdb nobs=numobs;
grp_id=floor(_N_*100/numobs)+1;
run;
Proc Import:
datafile:要導入的文件
out:輸出的數據集
dbms:文件類型,可以是tab csv dlm excel2000等等
replace:是否替換已經存在的數據集
三個子句(其中delimiter只針對dbms=dlm的情況):
delimiter:制定分隔符
getnames:是否從文件首行讀入變量名
datarow:從那一行開始讀入數據
如:
proc import datafile='c:\test.csv' out=test dbms=dlm replace;
delimiter=',';
getnames=no;
datarow=2;
run;
總結
- 上一篇: 浅谈协同过滤推荐算法
- 下一篇: inputn函数与input函数的区别