SAS,使用右侧的列值替换缺少的列值

时间:2016-04-13 21:49:10

标签: design-patterns sas

我有一个包含100列的数据集。每次它都会有一些列的缺失值(缺少整列值)。位置是固定的,因此我无法通过columnA = ColumnB指定它们。

我想要做的是将整个缺失列值替换为右侧列中的列值(请参阅测试数据)。谢谢。

DATA have ;
LENGTH make $ 20 ;
INPUT make $ 1-17 a b c d m h u;
CARDS;
AMC Concord        4099 22 . 2  1   . 22 
AMC Pacer          4749 17 . 2  1   . 17
Audi 5000          9690 17 . 3  23  . 17
Audi Fox           6295 23 . 1  32  . 23
;
RUN;

DATA want;
LENGTH make $ 20 ;
INPUT make $ 1-17 a b c d m h u;
CARDS;
AMC Concord        4099 22 2 2  1  22 22  
AMC Pacer          4749 17 2 2  1  17 17
Audi 5000          9690 17 3 3  23 17 17
Audi Fox           6295 23 1 1  32 23 23;
RUN;

1 个答案:

答案 0 :(得分:2)

假设在没有丢失整列的情况下你不能错过:

data want;
set have;
array vars(*) a -- u;

do i = 1 to dim(vars)-1;
if vars(i) = . then vars(i)=vars(i+1);
end;

run;