对不起vauge标题.
我的数据集看起来基本上是这样的:
ID X
18 1
18 1
18 2
18 1
18 2
369 2
369 3
369 3
361 1
Run Code Online (Sandbox Code Playgroud)
我想要的是找到每个ID的最大值x.在此数据集中,ID = 18时为2,ID = 361时为3.
任何反馈将不胜感激.
Proc表示类声明(因此您不必排序)并请求最大统计量可能是最直接的方法(未经测试):
data sample;
input id x;
datalines;
18 1
18 1
18 2
18 1
18 2
369 2
369 3
369 3
361 1
;
run;
proc means data=sample noprint max nway missing;
class id;
var x;
output out=sample_max (drop=_type_ _freq_) max=;
run;
有关Proc Means(http://support.sas.com/onlinedoc/913/docMainpage.jsp)的详细信息,请查看在线SAS文档.
小智 3
我不太明白你的例子。我无法想象输入数据集真的具有一次观察中的所有值。你的意思是这样的吗?
data sample;
input myid myvalue;
datalines;
18 1
18 1
18 2
18 1
18 2
369 2
369 3
369 3
361 1
;
proc sort data=sample;
by myid myvalue;
run;
data result;
set sample;
by myid;
if last.myid then output;
run;
proc print data=result;
run;
Run Code Online (Sandbox Code Playgroud)
这会给你这个结果:
Obs myid myvalue
1 18 2
2 361 1
3 369 3
Run Code Online (Sandbox Code Playgroud)