gpt4 book ai didi

sas - SAS 中的编译与执行

转载 作者:行者123 更新时间:2023-12-04 21:58:58 28 4
gpt4 key购买 nike

这个问题在 SAS forum 上讨论过,与会者最终同意不同意。

问题很简单:SAS 在编译时为所有变量分配一个缺失值UNLESS一个变量出现在sum 语句中(在这种情况下,SAS 在编译时分配了一个值 0 )。这是我的简单证明

  data test;
put _all_;
var1+1;
var2=5;
put _all_;
run;

日志屏幕

var1=0 var2=. _ERROR_=0 _N_=1
var1=1 var2=5 _ERROR_=0 _N_=1
NOTE: The data set WORK.TEST has 1 observations and 2 variables.

var2 被分配了一个缺失值 但是 var1 被分配了 0 因为它是 的一部分>求和语句(我相信是这样)


我的问题是为什么?我非常确定 SAS 在编译时将 缺失值 分配给所有变量。为什么它会对将出现在 sum 语句 中的变量进行异常处理?还有其他异常(exception)吗?

最佳答案

我不会称它为求和语句。

声明

var1+1;

相当于

retain var1 0;
var1 = var1 + 1;

也不是“长”求和语句

var1 = var1 + 1;

也不是

var1 = sum(var1, 1);

本身会执行 RETAIN 行为,也不会初始化为零。所以回答这个问题:

初始化为零是隐式请求的 RETAIN 行为的一部分a + b;变量 a 的语法。

我想不出其他异常(exception)。

关于sas - SAS 中的编译与执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24318484/

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