在R中计算模式

时间:2015-03-08 20:19:37

标签: r

您好我正在尝试为每个唯一ID制定模式。

换句话说,我想知道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

我理解数字是指小数?这是否意味着我的答案是小数,如果是这样我怎么能改变它来汇总值并显示一个数字?

以下是我的数据框样本&lt; - 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

1 个答案:

答案 0 :(得分:1)

这是另一种方法:

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)
    }