分组和排序:
By 语句:
1)使用sort过程对观测进行排序:
proc sort data=输入数据集 <out=输出数据集> <其他选项>; # 如果有out,那么原有数据集不变;
by 变量列表; # 可以加一个变量或两个变量,优先是第一个变量;
run;
默认升序;
2)descending 降序排序:
proc sort data=输入数据集 <out=输出数据集> <其他选项>;
by 变量1 descending 变量2; # 变量1是升序排列,而变量2是降序排列;
run;
找到分组中的第一个和最后一个观测:
SAS会为by语句指定每个变量生成两个临时变量 # 第一个进入队列的,也有最后一个进入队列的。
first.by last.by
分组中第一个和最后一个观测
data jc;
set b;
by groupin;
if first.groupin or last.groupin;
run;
代码说明:
1)从b数据集当中,生成相应的数据集jc;
2)有一个groupin的入组的变量;排序
3)入组的变量有一个排序方式,升序排序,第一个入组的叫first.groupin, 最大的日期是最后一个last.groupin
nodupkey 删除重复by 变量的观测
代码说明:
1)data=b 是指定的数据集;我们对数据集b进行排序;
2)输出的数据集为jc,我们加了nodupkey,这是去除了 重复的,重复的数据集都输出到jcd;
如果在by语句中放两个变量gender2 id,那么限制条件多了,可能就不满足条件了。
创建新变量:
使用数据集选项 rename= 或者 rename 语句。
rename 不能用于proc步,但是数据集选项。
1)创建shi.csv文件:
文件内容为:
2)程序如下:
proc import
datafile="D:\SAS\sas.csv"
dbms=csv
out=contact2 replace;
run;