组合SAS数据集中的列

时间:2014-06-30 14:17:58

标签: sql sas

我的问题涉及将数据集中的多个列合并为一个列。我知道之前已经多次回答过这个问题,但这只是针对较大数据集之外的单个变量。这适用于较大数据集中的两个变量。

基本上,这是数据的样子:

Range Pass Height Height_1 Height_2 Height_3  V   V_1   V_2   V_3   Breed Treatment
2     6    200    .        .        .         20  .     .     .     AAAA  1
2     8    .      179      .        .         .   18    .     .     BBBB  1
2     10   .      .        199      .         .   .     21    .     CCCC  1
2     12   .      .        .        188       .   .     .     19    DDDD  1
3     6    155    .        .        .         17  .     .     .     BBBB  2
3     8    .      201      .        .         .   22    .     .     AAAA  2
3     10   .      .        195      .         .   .     20    .     CCCC  2
3     12   .      .        .        188       .   .     .     18    DDDD  2

基本上,我想将所有四个“Height”列合并为一个单独的Height列,将所有四个“V”列合并为一个V列,同时保持所有其他列不变。

1 个答案:

答案 0 :(得分:4)

您可以使用coalesce()支持的proc SQL在SQL中执行此操作:

proc sql;
    select range, pass,
           coalesce(Height, Height_1, Height_2, Height_3) as height,
           coalesce(V, V_1, V_2, V_3) AS V,
           Breed, Treatment
    from dataset;