识别向量中最常见的小数

时间:2014-03-27 10:13:19

标签: r

我有一个包含小数的矢量:

a<-c(0.5,0.5,0.3,0.5,0.2)

我想确定向量中最常见的(即多数)数字并返回该数字。

table(a)不起作用,因为它会返回整个表格。我希望它只返回0.5

如果有关系,我想随机选择。

我有一个为整数执行此操作的函数:

function(x){ 
    a<-tabulate(x,nbins=max(x)); b<-which(a==max(a))
if (length(b)>1) {a<-sample(b,1)} else{b}
}

但是,这对分数不起作用。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以使用

names(which.max(table(a)))

如果你想要像你的情况那样的数字,然后将它强制转换为数字

as.numeric(names(which.max(table(a))))

要使领带案例随机化,您可以随机添加表格

as.numeric(names(which.max(sample(table(a))))) #note this works only if length(unique(a)) > 1