2015-03-08 70 views
0

嗨我正在試圖找出每個唯一ID的模式。在R計算模式

換句話說,我想知道DAY,TRANS_TIME,WEEK_NO的每個household_key的模式。即在這一天每戶出現的最等

我已經把一些代碼

library(dplyr) 
randomtest <- mydata %>% group_by(household_key) %>% 
    summarise_each(funs(mode),DAY, TRANS_TIME, WEEK_NO) 

此輸出:

household_key  DAY TRANS_TIME WEEK_NO 
1    1 numeric numeric numeric 
2    2 numeric numeric numeric 
3    3 numeric numeric numeric 
4    4 numeric numeric numeric 
5    5 numeric numeric numeric 
6    6 numeric numeric numeric 
7    7 numeric numeric numeric 
8    8 numeric numeric numeric 
9    9 numeric numeric numeric 
10   10 numeric numeric numeric 

我明白數字手段小數?這是否意味着我的答案是以小數爲單位的,如果可以,我怎樣才能改變它來收集價值並顯示一個數字?

下面是我的數據框<的樣本 - MYDATA

household_key DAY TRANS_TIME WEEK_NO 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
2375 1 6 1 
1364 1 6 1 
1364 1 6 1 
1364 1 6 1 
1364 1 6 1 
1364 1 6 1 
1130 1 5 1 
1130 1 5 1 
1130 1 5 1 
1130 1 5 1 
1130 1 5 1 
1173 1 7 1 
1173 1 7 1 
1173 1 7 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
1172 1 4 1 
+0

你應該看看'mode'看,這不是你要找的功能是什麼? 。看到很多很多選項的重複問題。 – Gregor 2015-03-08 20:22:04

+0

@Gregor在我發佈這個問題之前,我已經看到了鏈接,我是R新手,無法將我想要實現的任何答案聯繫起來?你能給我一些關於如何做到這一點的建議嗎? – user2704941 2015-03-08 20:24:33

+0

選擇一個,例如Ken Williams接受的答案。運行定義函數「Mode」的代碼。然後在你的問題中用'funs(mode)'替代'funs(mode)'來運行代碼,該代碼給出了對象的存儲模式,這給出了最頻繁的觀察。 – Gregor 2015-03-08 20:31:38

回答

0

這裏的另一種方法:

smode <-function(x){ 
    xtab<-table(x) 
    modes<-xtab[max(xtab)==xtab] 
    mag<-as.numeric(modes[1]) #in case mult. modes, this is safer 
    themodes<-names(modes) 
    mout<-list(themodes=themodes,modeval=mag) 
    return(mout) 
    }