如何更改我的 SAS 代码以找到最大数量
How to change my SAS code to find the maximum number
我有一个这样的数据集。我想创建另一个代表每天总交易量的变量。我的代码如下所示。但是我的代码似乎有问题,计算出的最大交易量 N
不知何故是错误的。谁能告诉我我的错误在哪里。
proc sort data = work.data;
by time;
run;
data work.data;
set work.data;
retain I;
by time;
if first.time then I = volume; else I = I + volume;
run;
proc sql;
create table work.data2
as select a.*, max(I) as N
from work.data as a
group by time
order by time;
quit;
ID Time Volume
Apple 1/1/2001 1000
BP 1/1/2001 1500
AAL 2/1/2001 1130
Apple 2/1/2001 1000
BP 2/1/2001 1500
AAL 2/1/2001 1130
Apple 3/1/2001 1000
BP 3/1/2001 1500
AAL 3/1/2001 1130
你的条件应该是max(I)。类似于:让 I=max(I);也可以通过一个 proc sql.
试试这个
proc sql;
select * from (select time,sum(volume) as total from have group by time) having total=max(total);
quit;
我有一个这样的数据集。我想创建另一个代表每天总交易量的变量。我的代码如下所示。但是我的代码似乎有问题,计算出的最大交易量 N
不知何故是错误的。谁能告诉我我的错误在哪里。
proc sort data = work.data;
by time;
run;
data work.data;
set work.data;
retain I;
by time;
if first.time then I = volume; else I = I + volume;
run;
proc sql;
create table work.data2
as select a.*, max(I) as N
from work.data as a
group by time
order by time;
quit;
ID Time Volume
Apple 1/1/2001 1000
BP 1/1/2001 1500
AAL 2/1/2001 1130
Apple 2/1/2001 1000
BP 2/1/2001 1500
AAL 2/1/2001 1130
Apple 3/1/2001 1000
BP 3/1/2001 1500
AAL 3/1/2001 1130
你的条件应该是max(I)。类似于:让 I=max(I);也可以通过一个 proc sql.
试试这个proc sql;
select * from (select time,sum(volume) as total from have group by time) having total=max(total);
quit;