作者imaltar (..)
站内Statistics
标题Re: [问题] 用SAS处理120万笔资料取众数
时间Sun Apr 24 17:25:30 2011
假设一下有多个id
data hosp;input id $ hosp_id $;
cards;
1 A
1 A
1 A
1 B
1 B
1 A
1 B
1 A
1 B
1 A
2 A
2 C
2 C
2 A
2 C
2 B
2 A
2 C
3 G
3 G
3 A
3 B
;
所以id=1 到医院A有6次最多
id=2 到医院C 4次最多
id=3 到医院G 2次最多
proc sql;
create table out as
select a.*,b.max_count,b.hosp_id as most_hosp_id
from hosp a left join (select *
from (select *,count(*) as max_count
from hosp
group by id,hosp_id)
group by id
having max_count=max(max_count)) b
on a.id=b.id;
quit;
out就是最後要的data
参考看看
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.230.34
1F:推 ijulieee:太感谢了!!! 04/24 20:17
2F:→ ijulieee:可是刚刚跑出来 会遇到一个问题 像是3这个人 G跟A平手 04/24 20:18
3F:→ ijulieee:本来的五笔资料就会变成十笔,然後五个是A五个是G 04/24 20:19
4F:→ ijulieee:请问该怎麽办比较好呢? 04/24 20:19
5F:推 west1996:要看你碰到平手时想要怎麽列? 04/24 22:10
6F:推 dreas:太神了 04/24 22:35
7F:→ imaltar:我有想到 但是要看你平手时的规则是什麽 再去改 04/24 22:47
8F:推 dreas:请问先生如何精进SAS程度,学生尚在学习当中 04/24 22:56
9F:推 lsshno1:我不是很会写,可是天天写一定可以进步. 04/24 23:58
10F:推 tew:加上随机抽样语法 抽取平手的资料 或者 医院有甚麽分数 04/25 08:21
11F:→ tew:平手时 你就要挑那间医院 04/25 08:21
12F:推 ijulieee:感谢大家热情的帮忙!後来我用i大的语法+随机抽样解决了! 04/26 00:06