SAS:First 的替代品。最后。数据无法排序时的变量?

SAS: alternatives to First. and Last. variables when data can not be sorted?

请帮助我解决以下 SAS 问题。我需要将我的数据集从 "original" 转换为 "new",如图所示。因为"priority"这个变量不能排序,好像是第一个。最后。变量在这里不起作用,不是吗?目标是让每个优先级序列代表 "new" 数据集中的一个条目。

谢谢!

p.s。我不知道如何在这个 post 中创建一个 table,所以我只是拍了一张屏幕快照。

对我来说似乎相当简单。只需创建一个批次 ID。

data have_pret;
  set have;
  by subject;
  if first.subject then batchID=0;
  if priority=1 then batchID+1;
run;

然后你可以subject/batchID转置。这假设优先级总是从 1 开始 - 如果它有时从 > 1 开始,您可能需要调整您的逻辑并跟踪优先级的先前值。