Sas 使用多个字段作为键的过程摘要

Sas 使用多个字段作为键的过程摘要,sas,summary,Sas,Summary,是否有一种方法可以使用PROC SUMMARY复制以下行为,而无需创建虚拟变量UniqueKey DATA table1; input record_desc $ record_id $ response; informat record_desc $4. record_id $1. response best32.; format record_desc $4. record_id $1. response best32.; DATALINES; A001 1 300 A001 1 1

是否有一种方法可以使用
PROC SUMMARY
复制以下行为,而无需创建虚拟变量
UniqueKey

DATA table1;
input record_desc $ record_id $ response;
informat record_desc $4. record_id $1. response best32.;
format record_desc $4. record_id $1. response best32.;
DATALINES;
  A001 1 300
  A001 1 150
  A002 1 200
  A003 1 150
  A003 1 99
  A003 2 250
  A003 2 450
  A003 2 250
  A004 1 900
  A005 1 100
;
RUN;

DATA table2;
  SET table1;
  UniqueKey = record_desc || record_id;
RUN;

PROC SUMMARY data = table2 NWAY MISSING;
  class UniqueKey record_desc record_id;
  var response;
  output out=table3(drop = _FREQ_ _TYPE_) sum=;
RUN;

您可以通过record_desc和record_id(参见下面的class语句)进行总结,而无需创建两列的串联。是什么让你认为你不能

PROC SUMMARY data = table1 NWAY MISSING;
  class record_desc record_id;
  var response;
  output out=table4(drop = _FREQ_ _TYPE_) sum=;
RUN;


proc compare 
    base=table3
    compare=table4;
run;

我很好奇(Chris在下面)为什么要创建UniqueKey?你在解决什么问题?我想我一定问错问题了,因为这个问题毫无意义。我将回顾代码,并试图找出我不理解的地方(我正在维护我没有编写的代码,我记得类似于此的一些奇怪的事情),这个问题似乎是离题的,因为它是关于一个由于错误理解其他代码而产生的小问题。它对其他人没有价值。(这是我的问题,无法挽救)我想你不能在答案前删除它?如果你愿意,你可以将你的问题标记为版主;他们可能会帮你删除它。或者你可以在下面ping Chris,让他删除他的答案;这两种情况都允许您删除该问题。