gpt4 book ai didi

sas - SAS中的IF-THEN与IF

转载 作者:行者123 更新时间:2023-12-04 17:20:15 26 4
gpt4 key购买 nike

IFIF-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;

If-then-do语句有条件地执行 do;end;之间的代码。因此,仅当type等于 i=1;时,以上代码才执行 output;'H'

没有 ifthen是“子设置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.



因此,如果不满足if(例如 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com