如何在sas中重复或合并行
我想重复col1第3条记录,在下面两行中重复4次 输出我想要的如何在sas中重复或合并行,sas,Sas,我想重复col1第3条记录,在下面两行中重复4次 输出我想要的 Col1 col2 Col3 1 Abc Shs 2 Cuz Dhsh 3 Uhhj Wer . Xyz . Pqr 4 Yui Pol . Lkj 5 Haha Jaja 6 Euue Suus 7 Shus Yeye 我尝试在Excel宏中使用,但无法在sas中实现输出使用retain来维
Col1 col2 Col3
1 Abc Shs
2 Cuz Dhsh
3 Uhhj Wer
. Xyz
. Pqr
4 Yui Pol
. Lkj
5 Haha Jaja
6 Euue Suus
7 Shus Yeye
我尝试在Excel宏中使用,但无法在sas中实现输出使用
retain
来维护和跟踪在前一行中检索或分配的变量值
Col1 col2 Col3
1 Abc Shs
2 Cuz Dhsh
3 Uhhj Wer
3 uhhj Xyz
3 uhhj Pqr
4 Yui Pol
4 yui Lkj
5 Haha Jaja
6 Euue Suus
7 Shus Yeye
对于多列的情况,可以使用两个数组:
- 用于引用数据集中的值的基于变量的数组
- 用于跟踪先前行值的临时数组。临时阵列不受“将PDV重置为丢失”的标准数据步骤行为的影响
使用
retain
维护和跟踪前一行中检索或分配的变量值
Col1 col2 Col3
1 Abc Shs
2 Cuz Dhsh
3 Uhhj Wer
3 uhhj Xyz
3 uhhj Pqr
4 Yui Pol
4 yui Lkj
5 Haha Jaja
6 Euue Suus
7 Shus Yeye
对于多列的情况,可以使用两个数组:
- 用于引用数据集中的值的基于变量的数组
- 用于跟踪先前行值的临时数组。临时阵列不受“将PDV重置为丢失”的标准数据步骤行为的影响
你能以更易读的形式发布你的数据吗?最好有一个数据步骤和数据线。你能以更可读的形式发布你的数据吗?最好有数据步骤和数据线。假设有30 40列,那么如何自动化而不是写每一列假设有30 40列,那么如何自动化而不是写每一列
data want;
set have;
array priors(1000) _temporary_;
array values col1-col40;
do _n_ = 1 to dim(values); * repurpose _n_ for loop indexing;
if missing(values(_n_))
then values(_n_) = priors(_n_); * repeat prior value into missing value;
else priors(_n_) = values(_n_); * track most recent non-missing value;
end;
run;