SAS/SAS宏-逐行读取观察值
样本数据:SAS/SAS宏-逐行读取观察值,sas,sas-macro,Sas,Sas Macro,样本数据: PatID Strata1 Strata2 Allocated TG 1 1 1 T1 2 1 2 T2 3 2 3 T1 4 1 3 . 5 2 2 . 6 1 3
PatID Strata1 Strata2 Allocated TG
1 1 1 T1
2 1 2 T2
3 2 3 T1
4 1 3 .
5 2 2 .
6 1 3 .
7 1 3 .
8 2 4 .
我有两种情况之一的患者
我必须根据STRAT计算分配的TG以及之前所有患者的分配TG。在上述示例中,分配的TG用于3名患者
对于第4名患者,分配的TG将如下计算:
Strata1的价值是多少
在此之后,它必须对患者5进行计算。同样,它必须对之前的4名患者进行计算。程序员更喜欢批处理模式的方法,而不是逐行进行,以获得更快的性能。
可以在循环中使用firstobs和obs。对于batchmode,使用obs-firstobs作为1000或一些数字,对于逐行使用obs=firstobs+1欢迎使用SO。你应该提供更多关于你想做什么计算的细节。我猜你想在第(n-1)次观察的基础上对第n次观察做点什么,但是你需要提供更多的信息。如果你能提供一个小例子,说明你想要实现什么(比如6行数据和你期望的结果),那将非常有帮助。但最有可能的是,您应该查看retain语句。您好,我已经更新或改进了我的问题。请现在查看。:)我对你的问题进行了编辑以使其更清楚,但我认为你仍然需要提供更清楚的信息。您是否可以发布一个数据集,其中包含剩余5行的计算TG2?它们应该是什么?而且,这听起来像是可以订购的——也就是说,在计算患者5之前先计算患者4是很重要的,这是真的吗?最后,你需要向我们展示你已经尝试过的东西;这不是一个“为你做你的工作”的网站,而是关于具体问题的帮助。你在说什么?如果你无法手动解决上面的例子,你将无法在这里得到任何帮助。我建议你花些时间研究如何做到这一点,然后编辑你的问题,以反映你可能遇到的问题。