《SAS编程与数据挖掘商业案例》学习笔记之三

本文详细介绍了SAS编程中set语句的用法,包括keep和drop指定变量、重命名变量、筛选条件、nobs和point的应用。通过实例展示了如何高效地读取和操作数据,如通过set语句节省程序运行时间,利用in变量进行条件判断,以及获取数据集最后一条记录的方法。此外,还讲解了如何通过set语句输出多个数据集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

五:set语句

1.keepdrop指定变量进入或者不进入pdv

eg

Data d1(keep=name)  data  d2 (keep=name sex);

  set sashelp.class(keep=name sex  rename=(name=name_new sex=sex_new)   where=(sex='M')  firstobs=3 obs=5);

Run;

注:

黄色部分标示只有name  sex两个变量进入pdv,其余变量不会读入,这样会大大节省程序运行时间;

红色部分表示对变量进行重命名

灰色部分代表对变量进行筛选

绿色部分代表从第三个记录读到第五个记录

 

2.关于in 的应用

Data in1;

Set one(in=ina)  two(in=inb);

In_one=ina;

In_two=inb;

Run;

 

一个关于in的应用:

Data in2;

Set one(in=ina)  two(in=inb);

    If  ina=1 then flag=1;

       else flag=0;

Run;

 

3.nobspoint的应用

 

data nobs;

set fvr.test1 nobs=obs_total;

total=obs_total;

output;

stop;

run;

绿色部分是将观测数传送给临时变量obs_total;

上述语句只会返回数据集的第一条记录

 

Data point1;

   n=2;

    Set  fvr.test1 point=n;

   Output;

   Stop;

Run;

注:pointnobs一样,后面都要跟变量,而不能是常量;

Point语句必须与stop语句一起使用,凡是出现point语句必须出现stop语句,否则容易陷入死循环

pointnobs语句是相互独立的,point语句是在pdv之后,而nobs语句是咋pdv 之前;

下面一个综合应用(获取数据集最后一条记录):

Data nobs_point;

Set fvr.test1 nobs=last  point=last;

Output;

Stop;

Run;

程序解读:编译时nobs=对应数据信息(总观测条数),会传给last临时变量;

接下来程序读入test1进入pdv,读到point=选项时,数据指针会获取last的值,指针会直接指向last对应的观测值,

最后输出该观测值;停止data步的执行;

上述方法是获取数据集最后一条记录最快速的方法

像下面的语句:

Data zhu;

   set fvr.test1 end=obs_last;

   if obs_last=1;

Run;

显然这个代码需要将数据集全部读入pdv,显然是不经济的

 

4.输出多个数据集;

Data  d1  d2;

   set sashelp.class;

    if _n_ le 10 then output d1;

    else output d2;

Run ;

观测序号小于或者等于10的输入到d1,否则到d2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值