五:set语句
1.keep和drop指定变量进入或者不进入pdv
eg:
 Data d1(keep=name) 
  
Run;
注:
 黄色部分标示只有name 
红色部分表示对变量进行重命名
灰色部分代表对变量进行筛选
绿色部分代表从第三个记录读到第五个记录
  
2.关于in 的应用
Data in1;
 Set one(in=ina) 
In_one=ina;
In_two=inb;
Run;
  
一个关于in的应用:
Data in2;
 Set one(in=ina) 
  
  
Run;
  
3.nobs和point的应用
  
data nobs;
set fvr.test1 nobs=obs_total;
total=obs_total;
output;
stop;
run;
绿色部分是将观测数传送给临时变量obs_total;
上述语句只会返回数据集的第一条记录
  
Data point1;
  
  
  
  
Run;
注:point和nobs一样,后面都要跟变量,而不能是常量;
Point语句必须与stop语句一起使用,凡是出现point语句必须出现stop语句,否则容易陷入死循环
point和nobs语句是相互独立的,point语句是在pdv之后,而nobs语句是咋pdv 之前;
下面一个综合应用(获取数据集最后一条记录):
Data nobs_point;
 Set fvr.test1 nobs=last 
Output;
Stop;
Run;
程序解读:编译时nobs=对应数据信息(总观测条数),会传给last临时变量;
接下来程序读入test1进入pdv,读到point=选项时,数据指针会获取last的值,指针会直接指向last对应的观测值,
最后输出该观测值;停止data步的执行;
上述方法是获取数据集最后一条记录最快速的方法,
像下面的语句:
Data zhu;
  
  
Run;
显然这个代码需要将数据集全部读入pdv,显然是不经济的
  
4.输出多个数据集;
 Data 
  
  
  
Run ;
观测序号小于或者等于10的输入到d1,否则到d2