作者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
推 ijulieee:太感謝了!!! 04/24 20:17
→ ijulieee:可是剛剛跑出來 會遇到一個問題 像是3這個人 G跟A平手 04/24 20:18
→ ijulieee:本來的五筆資料就會變成十筆,然後五個是A五個是G 04/24 20:19
→ ijulieee:請問該怎麼辦比較好呢? 04/24 20:19
推 west1996:要看你碰到平手時想要怎麼列? 04/24 22:10
推 dreas:太神了 04/24 22:35
→ imaltar:我有想到 但是要看你平手時的規則是什麼 再去改 04/24 22:47
推 dreas:請問先生如何精進SAS程度,學生尚在學習當中 04/24 22:56
推 lsshno1:我不是很會寫,可是天天寫一定可以進步. 04/24 23:58
推 tew:加上隨機抽樣語法 抽取平手的資料 或者 醫院有甚麼分數 04/25 08:21
→ tew:平手時 你就要挑那間醫院 04/25 08:21
推 ijulieee:感謝大家熱情的幫忙!後來我用i大的語法+隨機抽樣解決了! 04/26 00:06