SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 651|回复: 2
打印 上一主题 下一主题

请教高手:关于OUTPUT语句的运行机制

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-11-21 17:36:44 | 只看该作者

请教高手:关于OUTPUT语句的运行机制

例如:
data a;
x=1;
run;

data b;
set a;
if x=2 then output;
y=2;
run;

本以为数据集b会有一条观测,但是结果不是,这里是不是OUTPUT语句的运行机制问题?有高人知道吗?多谢了!先
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-11-22 20:43:47 | 只看该作者

Re: 请教高手:关于OUTPUT语句的运行机制

已解决,多谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-11-24 14:26:42 | 只看该作者

Re: 请教高手:关于OUTPUT语句的运行机制

Implicit versus Explicit Output

By default, every DATA step contains an implicit OUTPUT statement at the end of each iteration that tells SAS to write observations to the data set or data sets that are being created. Placing an explicit OUTPUT statement in a DATA step overrides the automatic output, and SAS adds an observation to a data set only when an explicit OUTPUT statement is executed. Once you use an OUTPUT statement to write an observation to any one data set, however, there is no implicit OUTPUT statement at the end of the DATA step. In this situation, a DATA step writes an observation to a data set only when an explicit OUTPUT executes. You can use the OUTPUT statement alone or as part of an IF-THEN or SELECT statement or in DO-loop processing.

清晰 和 隐含的 Output 命令

默认情况下,在每次循环的最后,每个数据步包含一个隐含的Output命令,用于告诉SAS把 观测值写进正在创建的数据集里。如果在数据步里写一个清晰的 Output,那这个命令就覆盖了自动的Output,因此,只有当执行这个清晰的Output时,SAS才把这个观测加入到数据集里。一旦你用Output来把一个观测写进数据集,在数据步的末尾,就没有了隐含的Output命令。

data b;
set a;
if x=2 then output;
y=2;
run;

在你这个程序里,if-then语句里有了一个清晰的Output,意味着这个数据步没有了隐含的Output,也就是 y=2 后面是没有output的。所以b里面也就是空的了。

如果我们做如下修改,在y=2后面加上 output,如下:

data b;
set a;
if x=2 then output;
y=2;
output;
run;

b 里面就会有 一个obs了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-6 06:20 , Processed in 0.069319 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表