首页 理论教育 SAS基础:使用set语句删减观测行,获取结果

SAS基础:使用set语句删减观测行,获取结果

时间:2023-08-10 理论教育 版权反馈
【摘要】:也可用set语句配合if语句砍去一些数据行。“firstobs=”选项的一般形式是“firstobs=n”,其含义是将所拷贝的SAS数据集的前n-1行删去。例4.5设已通过如下程序:得到SAS数据集w中5个变量No、u、x、y和z的10次观测值。

SAS基础:使用set语句删减观测行,获取结果

有时希望去除一些观测值,通俗地说,就是砍去一些数据行。这时可以用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中的奇数行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈