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;
|