2015-03-08 65 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) 
    }