作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
IF
和IF-THEN
有什么区别
例如下面的语句
if type='H' then output;
vs
if type='H';
output;
最佳答案
if-then语句有条件地执行代码。如果满足给定观察条件,则在执行;
之前在“then”之后执行任何操作,否则不执行。在您的示例中,由于后面是output
,因此只有'H'
类型的观察结果才输出到由数据步骤构建的数据集。您还可以具有if-then-do语句,例如以下代码:
if type = 'H' then do;
i=1;
output;
end;
do;
和
end;
之间的代码。因此,仅当type等于
i=1;
时,以上代码才执行
output;
和
'H'
。
if
的
then
是“子设置if”。根据
SAS documentation:
A subsetting IF statement tests the condition after an observation is read into the Program Data Vector (PDV). If the condition is true, SAS continues processing the current observation. Otherwise, the observation is discarded, and processing continues with the next observation.
type='H'
)的子集条件,则不会将观察结果输出到由数据步骤创建的数据集。在您的示例中,仅输出类型为
'H'
的观察值。
if type='H' then output;
仅输出type为
'H'
的观察值,而
if type='H'; output;
丢弃type不是
'H'
的观察值。请注意,在后者中,不需要
output;
,因为SAS数据步骤中有一个隐式输出,只有存在显式的
output;
命令时,该输出才被覆盖。
关于sas - SAS中的IF-THEN与IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23718029/
我是一名优秀的程序员,十分优秀!