SAS - 获取变量的最大值并作为列存储在数据集中

时间:2017-11-02 05:51:22

标签: sas

比方说,我有以下数据

Dataset name: TheTable
Name      Age      Height
Peter     21        1.6
Alexa     19        1.8
Rob       23        1.3

我想获得最大的年龄和身高,并将它们存储在表格中,如下所示

Dataset name: TheTableWithMax
Name      Age      Height     MaxAge     maxHeight
Peter     21        1.6       23         1.8
Alexa     19        1.8       23         1.8      
Rob       23        1.3       23         1.8

原因是我必须在每个变量和该变量的最大值之间进行比较。我怎样才能在SAS中做到这一点?

我已经考虑过以下操作以获取Age列的最大值(对于Height列将执行相同的过程)

proc sort data = TheTable (obs=1) out=MaxAge (keep = Age);
  by descending Age;
run;

但是,我不知道如何将其与原始TheTable合并以获得TheTablewithMax。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

使用proc sql和汇总函数可以轻松完成此操作,例如max()

proc sql;
create table TheTableWithMax as
select *
      ,max(age) as MaxAge
      ,max(height) as MaxHeight
from TheTable
;
quit;