根据另一个变量的值创建变量

时间:2019-07-24 20:40:27

标签: sas

我有两个组A和B,以及两个数字变量X和Y。我想根据B组的X和Y的值分别创建两个新变量new1和new2(即,如果组= B,则new1 = X,new2 = Y)。我要使用这些新创建的变量,将它们附加到组A,然后删除组B。最后,组A应该有一行包含X,Y,new1和new2。我不确定如何做到这一点。

我已经研究过使用PROC TRANSPOSE,但是我不确定这是否是正确的起点。缺少互联网搜索是因为我什至不确定这是一个常见的过程,需要一个通用的解决方案。

EXAMPLE

2 个答案:

答案 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;