首页 > 解决方案 > SAS - 每个组的填充值

问题描述

我有一个如下所示的数据集:

Stop    Group
JFK     A
JFK     B
JFK     C
AMS     A
AMS     B
AMS     C
LHR     A
SFO     B

我正在尝试生成一个新数据集,其中每个数据集Stop都有值 A、B 和 C。例如,JFK 和 AMS 已经有 AC,因此不需要更改。LHR 需要添加 B 和 C,而 SFO 需要添加 A 和 C。输出数据集应如下所示:

JFK A
JFK B
JKF C
AMS A
AMS B
AMS C
LHR A
LHR B
LHR C
SFO A
SFO B
SFO C

有任何想法吗?谢谢!

标签: sas

解决方案


这是一个简单的快速解决方案:

PROC SQL noprint;
  select distinct quote(stop) into :stop separated by ', '
  from have;
  select distinct quote(group) into :group separated by ', '
  from have;
quit;

data want;
  length stop $4 Group $2;
  do stop=&stop.;
    do Group=&group.;
      output;
    end;
  end;
run;

推荐阅读