SAS中文论坛

标题: 如何获取一列数据的最大值 [打印本页]

作者: shiyiming    时间: 2007-10-9 19:06
标题: 如何获取一列数据的最大值
1、如何获取一列数据的最大值
2、或者获取下一行的数据,与lag功能相反的函数
如果没有这样功能的函数,用另外什么样的方法能实现这个功能呢?
orcale有lead函数,好像sas没有啊?
作者: shiyiming    时间: 2007-10-10 08:48
标题: Re: 如何获取一列数据的最大值
1、SQL中用select语句里的max函数
2、将数据反过来(这是很简单的),用lag函数
作者: shiyiming    时间: 2007-10-10 10:47
标题: Re: 如何获取一列数据的最大值
反过来比较麻烦,可能sql好一点,可惜我不太会写,还能再详细讲讲啊
比如
v1     v2      v3
1       2        3
3       4        5
6       7        8
建立三个新的变量v1_1 v2_1 v3_1,值分别是6  7   8,即v1 v2 v3 列的最大值,谢谢阿
作者: shiyiming    时间: 2007-10-10 10:56
标题: Re: 如何获取一列数据的最大值
用proc means求min, max, mean等最合适了
[code:77540]proc means data=a;
var v1-v3;
output out=b;
run;[/code:77540]
作者: shiyiming    时间: 2007-10-10 11:24
标题: Re: 如何获取一列数据的最大值
谢谢,上述程序把最大值或最小值输出到数据集b中了,我想把最大值或最小值用不同的变量同时显示在数据集a中。
另外: 我发了一条短信到你的信箱,问如何获取下一行的数据值,与lag函数的功能想反。
作者: shiyiming    时间: 2007-10-10 11:47
标题: Re: 如何获取一列数据的最大值
再按照你的需求作一下数据变形,然后merge起来不就行了,自己完成吧。

很抱歉,由于类似短信太多,所以一律不接受SAS方面的短信support,只接受论坛不能登陆、修改密码等等论坛事务的短信support。
作者: shiyiming    时间: 2007-10-10 14:01
标题: Re: 如何获取一列数据的最大值
知道谢谢
作者: shiyiming    时间: 2007-10-11 07:59
标题: to 缘来是你
要把结果保留在a中,用sql的insert子句就行了
作者: shiyiming    时间: 2007-10-19 23:57
标题: Re: 如何获取一列数据的最大值
天呢,管理员,你应该声明一下,我就不会发给你这么多信息了。呵呵!
作者: shiyiming    时间: 2007-10-28 21:36
标题: Re: 如何获取一列数据的最大值
proc sql;
      select sum(v1) as v11,sum(v2) as v22.sum(v3) as v33
      from  setname;
作者: shiyiming    时间: 2008-1-14 17:18
标题: Re: 如何获取一列数据的最大值
那如果将三个新变量加入到a中,这三个变量均只取一个值(即相应列的最大值)么?还是其他值都为空,只保留一行??
作者: shiyiming    时间: 2008-1-14 22:01
标题: Re: 如何获取一列数据的最大值
不知道这段程序能不能给你有些帮助:
data a;
set a;
retain v1_1 v2_1 v3_1;
if _n_=1 then do;
v1_1=v1;v2_1=v2;v3_1=v3;
end;
if v1>v1_1 then v1_1=v1;
if v2>v2_1 then v2_1=v2;
if v3>v3_1 then v3_1=v3;
run;




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2