【问题标题】:PROC SUMMARY using multiple fields as a keyPROC Summary 使用多个字段作为键
【发布时间】:2014-10-13 13:19:32
【问题描述】:

有没有办法使用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;

【问题讨论】:

  • 我很好奇(正如下面的 Chris)为什么要创建 UniqueKey?你要解决什么问题?
  • 我想我一定问错了问题,因为这个问题没有任何意义。我要回去看看代码,试着找出我不明白的地方(我正在维护我没有写的代码,我记得一些奇怪的类似的东西)
  • 这个问题似乎是题外话,因为由于对其他一些代码的误解,它是关于一个微不足道的问题。对其他人来说没有任何价值。 (这是我的问题,无法挽救)
  • 我假设你不能在答案之前删除它?
  • 如果您愿意,可以将您的问题标记给版主;他们可能会为您删除它。或者你可以在下面联系 Chris 并要求他删除他的答案;这两件事都可以让你删除问题。

标签: sas summary


【解决方案1】:

您可以通过 record_desc 和 record_id 进行汇总(请参阅下面的类语句),而无需创建两列的串联。是什么让你认为你做不到?

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    相关资源
    最近更新 更多