sas - SAS 有条件地分组

我对条件组数据集有疑问:

这是我的数据集:

data temp;
input id x1 x2 $;
cards;
1 25 A
1 35 C
1 20 B
3 33 D
;
run;

我想按 id 对它们进行分组并创建一个新变量 Y。输出应如下所示:

id x1 x2 y
1  25 A  C
1  35 C  C 
1  20 B  C
3  33 D  D

例如,如果 id 相同,我需要比较 x2 C 胜 B,B 胜 A,等等。

我应该如何编码?非常感谢!

回答1

不确定这是否会泛化但一个 SQL 解决方案,其中 X2 的最大值成为每个 ID 的 Y value。

proc sql;
create table want as
select *, max(x2) as y
from have
group by ID;
quit;

相似文章

sas - 使用不同的参数并行运行相同的 SAS 程序

我目前正在优化SASEG中的脚本。该脚本基本上必须从2012年以来的每个月每天运行一次。直到2022年所有时期的代码运行时间不到24小时,但时不时地超过这个阈值。该过程(这是一个宏)的结构如下:从多个...

最新文章