OUTPUT 的作用是:将当前观测值写入数据集。需要在 DATA 步中使用。

OUTPUT 常用于在 dataset 中写入给定条件的记录(rows),方式是从上至下逐条写入。

 

假设有原始数据 sashelp.BMT :

 例一:在每条记录的下面添加一条新记录:

 

 第一个 output 输出第1条原始记录,第二个output输出一条新定义记录;第一个 output 输出第2条原始记录,第二个output输出一条新定义记录 ...... 以此类推,直至最后一条记录输出。总行数是原来2倍。

例二:在特定条件的记录下面追加一条新记录:

 

当 T<1000 时,追加一条新记录。这里T变量的值没有定义,output 默认复制上一条记录的值。

output 写在不同位置会有不同结果。

例三:将记录写入不同数据集:

 

 例四:将多列写入一列:

raw data:

 

 

 

 @ 使指针停留在当前数据行,连续三次 INPUT and OUTPUT 分别读入和写入每行数据,直到最后一次。

注意:DATA 步本身有内置的OUTPUT statement,在每一次迭代完成后运行并将观测写入数据集。但是一旦在data步中使用显性OUTPUT后,就会覆盖掉内置的OUTPUT语句,此时,SAS只会把 OUTPUT 之前的语句写入观测,换言之,必须在所有想要写进数据集的语句后面加上OUTPUT statement 才行。官方文档的说法:

 

posted on 2022-02-20 11:37  MOZY  阅读(371)  评论(0编辑  收藏  举报