有时希望去除一些观测值,通俗地说,就是砍去一些数据行。这时可以用set语句的“firstobs=”选项和“obs=”选项剪切SAS数据集。也可用set语句配合if语句砍去一些数据行。“firstobs=”选项和“obs=”选项要放在set语句的括号内。
“firstobs=”选项的一般形式是“firstobs=n”,其含义是将所拷贝的SAS数据集的前n-1行删去。
“obs=”选项的一般形式是“obs=m”,其含义是将所拷贝的SAS数据集的第m行以后的数据行删去。
下面举例说明这些选项的用法。
例4.5 设已通过如下程序:
得到SAS数据集w中5个变量No、u、x、y和z的10次观测值。如果想得到数据集w1,让它只包含数据集w的第3行以后的部分,怎么用SAS代码实现?
解 可用如下程序:
提交程序后打印得到的SAS数据集w1,就得到:(www.xing528.com)
如果想得到数据集w2,让它只包含数据集w的前8行,可用下列语句建立SAS数据集w2:
提交程序后打印得到的SAS数据集w2,就得到:
如果想得到数据集w3,让它只包含数据集w的第3—8行,可用下列语句建立SAS数据集w3:
提交程序后打印得到的SAS数据集w3如下:
set语句后跟if语句也能缩减SAS数据集,这时仅有满足if语句条件的数据行被拷入SAS数据集。例如想拷贝SAS数据集w的双数行,也就是变量No的值是双数的行。那么选择建立满足No是双数的条件:2*int(No/2)-No=0,于是可以用下列语句建立SAS数据集w4:
提交程序后打印得到的SAS数据集w4,就得到:
练习题 对于例4.4中的数据集w,建立新数据集ww,要求它的数据体仅有数据集w中的奇数行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。