我的问题涉及将数据集中的多个列合并为一个列。我知道之前已经多次回答过这个问题,但这只是针对较大数据集之外的单个变量。这适用于较大数据集中的两个变量。
基本上,这是数据的样子:
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列,同时保持所有其他列不变。
答案 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;