SAS阵列,以填充跨多列结转的最后一个值



如图所示,sepstrata0、sepstrata1和sepstrata3已经有了YAS、YES和YCS列的最后一个值。我想更改代码,使sepstrata0、sepstrata1和sepstrata3列不受影响,而来自transposited_gen_mod的其他列应该具有LVCF。我有YAS0 YES0 YCS0 YAS1 YES1 YCS1 YAS3 YES3 YCS3列;Atrisk";在所有YAS列中;事件";对于YES列和"YES"列;Censor";对于所有YCS列和总计,我有大约9547行,并且每列的第一行只有值。我想把这些值转发给所有9657行。

有人能指导我如何修改下面的代码来实现结果吗。我试着把它做一遍,但直到最后都没能完成。让我知道我是否在轨道上,并帮助解决方案修改代码以实现结果。

data plot_data_fin;
merge plot_datafin transposed_gen_mod;
by row;hw_lcl_lag=lag(hw_lcl);
ARRAY cols {*} YAS: YES: YCS: ;
Do i=1 to dim(cols);
if COLS[i]=" " then COLS[i]=lag(COLS[i]);
end;
run;

跑步;

如果translated_gen_mod只有一行包含YAS等列,并且您希望将这些值添加到plot_datafin上的每一行,那么您可以在不使用by变量的情况下进行合并。

data plot_data_fin;
merge plot_data_fin transposed_gen_mod;
run;

您将在日志中收到关于在没有by变量的情况下合并的警告,但结果是正确的。

目前尚不清楚您的数据是如何构建的,因此很难连贯地回答这个问题。

最新更新