由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 问个简单的SAS如何找出某个变量最大之所在的行?
相关主题
问个SAS 数据处理问题请教flag问题
请教一个问题,谢谢。help for one simple SAS DATA
SAS Dataset有什么最简单的办法能知道里面的最大值问SAS code怎么写
最大值和最小值输出如何用SAS找出含有特定字符的observation?
sas proc means/freq问题每个ID出现一次,missing去掉,请问高手用SAS怎么做?
请教SAS ODS to Excel请问关于交易量的一个SAS编程问题
[合集] 新手首次发贴 SAS 问题急问,谢谢大家的帮助SAS 求助, 一个小问题, 包子答谢
SAS code helpPlease help with a SAS macro
相关话题的讨论汇总
话题: v3话题: v1话题: min话题: max话题: time
进入Statistics版参与讨论
1 (共1页)
w*****y
发帖数: 130
1
谢谢!
v1 v2 v3
a 80 99
a 78 90
b 89 910
...
按照v1等分类,找出v3每组中最大值所在的数据行,like first row for group a
thanks
h***x
发帖数: 586
2
proc sort data=aaa; by v1 descending v3;
data aaa;
set aaa;
by v1 descending v3;
if first.v1;
run;
p*****o
发帖数: 543
3
proc sql;
create table b as select v1,max(v3) as V3_max from a
group by v1
order by v1;
quit;
but variable v2 isn't included there.....there must be a way to include v2
there too, but i dont know how to do it in single sql step..

【在 w*****y 的大作中提到】
: 谢谢!
: v1 v2 v3
: a 80 99
: a 78 90
: b 89 910
: ...
: 按照v1等分类,找出v3每组中最大值所在的数据行,like first row for group a
: thanks

D******n
发帖数: 2836
4
assuming your data is sorted by v1:
data _temp_;set yourdata;by v1;retain rownum 0;
if first.v1 then rownum=0;rownum=rownum+1;run;
proc sort ;by v1 descending v3;run;
data _temp_;set _temp_;by v1;if first.v1;drop v2;run;

【在 w*****y 的大作中提到】
: 谢谢!
: v1 v2 v3
: a 80 99
: a 78 90
: b 89 910
: ...
: 按照v1等分类,找出v3每组中最大值所在的数据行,like first row for group a
: thanks

w*****y
发帖数: 130
5
thanks for your help.
in fact I want rows that has max or min,
any other ways like SQL.
meanwhile, how could i store the time when max and min as max_time min_time respectively.
Look like this
V1 max_time min_time max_v3 min_v3
a 1999 1996 99 90
b******e
发帖数: 539
6
using data step:
proc sort data=aaa; by v1 v3; run;
data bbb (drop=year v3);
retain v1 max_time min_time max_v3 min_v3;
set aaa;
by v1 v3;
retain min_time min_v3;
if first.v1 then do;
min_time = year;
min_v3 = v3;
end;
if last.v1 then do;
max_time = year;
max_v3 = v3;
output bbb;
end;
run;
the above will give you:
V1 max_time min_time max_v3 min_v3
a 1999 1996 99 90
b 89 89 910 910
if you don't want the second row in the re
f********t
发帖数: 117
7
I dont use sas.
why you cant do this
select v1,
max(v3) as V3_max
min(v3) as V3_min
max(year) as year_max
min(year) as year_min from a
group by v1
order by v1;
..
select a.*, v3_max, v3_min, year..
from aaa a
left join
( select v1,
max(v3) as V3_max
min(v3) as V3_min
max(year) as year_max
min(year) as year_min from a
group by v1
) bb
on (aaa.v1 = bb.v1)
where a.v3 = bb.v3_max or
....

发信人: pepsico (pepsico), 信区: Statistics
标 题: Re: 问个简单的SAS如何找出某个变量最大之所在的行?
发信站: BBS 未名空间站 (Tue Jul 27 16:59:44
S******y
发帖数: 1123
8
#In Python
in_file = r'H:\time_min_max.txt'
f = open(in_file, 'r')
year_vec=[]
v3_vec = []
my_v1 = ''
f.next() # skip title row
print 'V1, max_time, min_time, max_v3, min_v3'
for line in f:
v1, year, v3 = line.split()
if v1 != my_v1 and my_v1 !='':
min_val = min(v3_vec)
max_val = max(v3_vec)
min_index = v3_vec.index(min_val)
max_index = v3_vec.index(max_val)
print my_v1,year_vec[max_index], year_vec[min_index], max_val, min_
val
year_vec=[]
1 (共1页)
进入Statistics版参与讨论
相关主题
Please help with a SAS macrosas proc means/freq问题
包子再求sas code~请教SAS ODS to Excel
菜鸟问个sas得问题,关于分数组[合集] 新手首次发贴 SAS 问题急问,谢谢大家的帮助
问个比较具体的算法问题SAS code help
问个SAS 数据处理问题请教flag问题
请教一个问题,谢谢。help for one simple SAS DATA
SAS Dataset有什么最简单的办法能知道里面的最大值问SAS code怎么写
最大值和最小值输出如何用SAS找出含有特定字符的observation?
相关话题的讨论汇总
话题: v3话题: v1话题: min话题: max话题: time