我有两个组A和B,以及两个数字变量X和Y。我想根据B组的X和Y的值分别创建两个新变量new1和new2(即,如果组= B,则new1 = X,new2 = Y)。我要使用这些新创建的变量,将它们附加到组A,然后删除组B。最后,组A应该有一行包含X,Y,new1和new2。我不确定如何做到这一点。
我已经研究过使用PROC TRANSPOSE,但是我不确定这是否是正确的起点。缺少互联网搜索是因为我什至不确定这是一个常见的过程,需要一个通用的解决方案。
答案 0 :(得分:0)
不确定如何概括该问题,但是对于给定的问题,它将起作用:
/* Just reversing the records */
proc sort data = have;
by descending group;
run;
data want;
set have;
retain new1 new2;
if _N_ = 1 then do;
new1 = x;
new2 = y;
end;
else output;
run;
答案 1 :(得分:0)
这听起来像是1对1合并(不合并BY
的情况)。
data have; input
group $1. x y; datalines;
A 3 4
B 2 6
run;
data want;
merge
have(where=( group='A'))
have(where=(Bgroup='B') rename=(x=Bx y=By group=Bgroup))
;
drop Bgroup;
run;