在SAS中keep语句放在data后和放在set后有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SAS中keep语句放在data后和放在set后有啥区别?相关的知识,希望对你有一定的参考价值。

参考技术A OBS= 参数的含义是允许 DATA 步或 PROC 步读取已有数据集的最后一行数据的行数。
如,
data new;
set old(obs=10);
run;
即,读取 old 数据集的前10行数据。

再如,
proc print data=study(firstobs=5 obs=10);
即,打印 study 数据集的第5行到第10行数据。

OBS=0,则表示创建一个新的空数据集,具有原数据集的结构,但不包含其数据。

switch结构case语句后的多个语句必须放在花括号中。 这句话对吗?为啥?

参考技术A 这个得根据实际情况来说,
有的语言不需要,有的语言需要。
有的编译器不需要,有的编译器需要,情况又很多种。
不过,我建议自己写程序时,还是带上花括号中,
参考技术B 不对。在case语句中,先判断case后面的表达式,是否与switch(表达式)括号中的表达式相等,如果为真,则从冒号:开始,后面的语句是顺序执行,直到结束后。不用必须放在花括号内。
如果中间有一些语句需要,局部变量定义等,可能要加上更好一些。

以上是关于在SAS中keep语句放在data后和放在set后有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

SAS do-Loops和set语句

SAS编程基础 - 数据获取与数据集操作

SAS笔记 RETAIN语句

SAS 统计某个数据集各个字段频数,并汇集到一个表中

SAS学习2(data步,input语句,从文件中读取数据)

如何更改SAS中所有字符变量的字符长度?