我有一个包含小数的矢量:
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}
}
但是,这对分数不起作用。
有人可以帮忙吗?
答案 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