[英]How to calculate cumulative product in SAS?
我需要创建一个变量,该变量采用所有先前值的值的乘积,并包括当前 obs 中的值。
data temp;
input time cond_prob;
datalines;
1 1
2 0.2
3 0.3
4 0.4
5 0.6
;
run;
最终数据应为:
1 1
2 0.2 (1*0.2)
3 0.06 (0.2* 0.3)
4 0.024 (0.06 * 0.4
5 0.0144 (0.024 *0.6)
这似乎是一个简单的代码,但我无法让它工作。 我可以做累积总和,但使用相同逻辑时累积乘积不起作用。
使用保留功能。 对于第一条记录,我将其设置为 1,因为任何乘以 1 的值都将保持不变。
data want;
set temp;
retain cum_product 1;
cum_product = cond_prob * cum_product;
run;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.