如何在sas中重复或合并行

如何在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第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
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;