使用数组对SAS中的n列进行动态求和

使用数组对SAS中的n列进行动态求和,sas,dynamic-arrays,Sas,Dynamic Arrays,我在SAS中遇到了一个问题,我必须对n列(时间(1)到时间(n))求和,其中n被定义为另一列中的变量(Min_Remain_wthdrw_Prd)。 我正在编写以下代码,但它不起作用: data certain;set certain; array t(*) t1-t60; do while(i<=Min_Remain_wthdrw_Prd); S_Disc=sum(t(1)-t(i)); end; end; run; 数据确定;确定; 阵列t(*)t1-t60; do while(i

我在SAS中遇到了一个问题,我必须对n列(时间(1)到时间(n))求和,其中n被定义为另一列中的变量(Min_Remain_wthdrw_Prd)。 我正在编写以下代码,但它不起作用:

data certain;set certain;
array t(*) t1-t60;

do while(i<=Min_Remain_wthdrw_Prd);
S_Disc=sum(t(1)-t(i));
end;
end;
run;
数据确定;确定;
阵列t(*)t1-t60;

do while(i您有太多的
end
语句,您可以使用常规的
do
循环

data certain ; set certain ; array t(*) t1-t60 ; S_Disc = 0 ; do i = 1 to Min_Remain_wthdrw_Prd ; S_Disc+t{i} ; end ; run; 数据确定; 确定; 阵列t(*)t1-t60; S_盘=0; i=1至最小值是否仍然存在; S_盘+t{i}; 结束; 跑
您有太多的
end
语句,您可以使用常规的
do
循环

data certain ; set certain ; array t(*) t1-t60 ; S_Disc = 0 ; do i = 1 to Min_Remain_wthdrw_Prd ; S_Disc+t{i} ; end ; run; 数据确定; 确定; 阵列t(*)t1-t60; S_盘=0; i=1至最小值是否仍然存在; S_盘+t{i}; 结束; 跑
您有太多的
end
语句,您可以使用常规的
do
循环

data certain ; set certain ; array t(*) t1-t60 ; S_Disc = 0 ; do i = 1 to Min_Remain_wthdrw_Prd ; S_Disc+t{i} ; end ; run; 数据确定; 确定; 阵列t(*)t1-t60; S_盘=0; i=1至最小值是否仍然存在; S_盘+t{i}; 结束; 跑
您有太多的
end
语句,您可以使用常规的
do
循环

data certain ; set certain ; array t(*) t1-t60 ; S_Disc = 0 ; do i = 1 to Min_Remain_wthdrw_Prd ; S_Disc+t{i} ; end ; run; 数据确定; 确定; 阵列t(*)t1-t60; S_盘=0; i=1至最小值是否仍然存在; S_盘+t{i}; 结束; 跑