修改Dataset的常用语句

例子:删除数据集ds1中 create_time between &start_sas_dt. and &end_sas_dt. 的数据
data ds1;
       set ds1 (where=(datepart(create_time) not between &start_sas_dt. and &end_sas_dt.));
以下内容转自http://blog.sina.com.cn/s/articlelist_1469930132_1_1.html
1.复制数据集
用到的语句:
data statement
set statement
keep statement
drop statement
delete statement
where statement
if statement
最简单的复制数据集
data target;
    set source;
更多精细的控制需要设置数据集选项或者使用一些语句。
假设source 数据集包括变量有name, sex, v1, v2, v3, v4
(1)只复制部分变量可以写为:
data target (keep=name sex v1 v2);
    set source;
或者
data target (drop=v3 v4) ;
    set source;
或者将数据集选项加在source数据集之后也是等价的。
还可以是用到keep与drop语句,例如
data target;
    set source;
    keep name sex v1 v2;

data target;
    set source;
    drop v3 v4;
(2)修改变量则使用rename=选项,例如
data target (rename=(v1=v5))
    set source;
或者将数据集选项加在source数据集之后也是等价的。
(3)添加变量时直接在data步中加入变量
data target;
    set source;
    y=v1+v2;
(4)复制部分记录可以使用firstobs与obs,选取从某一段连续的记录,例如
data target;
    set source (firstobs=5 obs=10);
很多情况下是有条件的选择部分记录,则需要用到where选项,例如
选取男性名单
data target;
    set source (where=(sex='男'));
或者用到where语句与delete语句,例如:
data target;
    set source;
    where sex='男';

data target;
    set source;
    if sex^='男' then delete;
(5)修改记录中某个变量值,例如
John的性别写错了,将其改过来
data target;
    set source;
    if name='John' then sex='男';
如果要将所有记录的v1值都修改为17,则只要将条件取消,例如
data target;
    set source;
    v1=17;
2.修改数据集
修改数据集的实质就是复制数据集,只是源数据集和目标数据集是同一个数据集而已,例如
data target;
    set target;
所以上面介绍的复制数据集的方法可以用来修改数据集。

 

 

 

 

 

你可能感兴趣的:(修改Dataset的常用语句)