gpt4 book ai didi

sas - SAS 如何在没有 'retain' 语句的情况下保留前一行的值?

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

我正在处理 this example它解释了如何使用 proc mcmc 拟合标准 Cox 模型在 SAS 9.3 .

对于数据中的第一行 ( ind=1 ), S=exp(bZ)与其他量一起计算。需要注意的是 S是一个新变量 从原始数据集的列构造。

对于第二行 ( 1 < in < &N ), S递增:S = S + exp(bZ) .

问题: SAS如何保留S的值从前一行?我本来期望一个 retain声明或类似的东西......

相关代码部分:

if ind = 1 then do;        /* first observation         */
S = exp(bZ);
l = vstatus * bZ;
v = vstatus;
end;
else if (1 < ind < &N) then do;
if (lag1(time) ne time) then do;
l = vstatus * bZ;
l = l - v * log(S); /* correct the loglike value */
v = vstatus; /* reset v count value */
S = S + exp(bZ);
end;
else do; /* still a tie */
l = vstatus * bZ;
S = S + exp(bZ);
v = v + vstatus; /* add # of nonsensored values */
end;
end;

最佳答案

很抱歉,这不是答案,请注意 http://support.sas.com/documentation/cdl/en/statug/63962/HTML/default/viewer.htm#statug_mcmc_sect017.htm 中所说的内容

Most of the programming statements that can be used in the DATA step can also be used in PROC MCMC.





For the most part, the SAS programming statements work the same as they do in the DATA step, as documented in SAS Language Reference: Concepts. However, there are several differences...



所以我的印象是 BEGINCNST里面的语法和 ENDCNST blocks 几乎与 datastep 中的相同,但一些内部工作不同,这可能是关于保留计算值的情况(?)。所以这可能与 datastep PDV(程序数据向量)不同。

关于sas - SAS 如何在没有 'retain' 语句的情况下保留前一行的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12685632/

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