【问题标题】:Identifying most frequent fractional numbers in vector识别向量中最常见的小数
【发布时间】:2014-03-27 10:13:18
【问题描述】:

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

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

但是,这不适用于分数。

有人可以帮忙吗?

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以使用

    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
    

    【讨论】:

    • 这很好用。唯一的问题是关系。我想随机选择。想象一下 a
    • 返回“0.5”,而不是 0.5。
    • 如果只有一个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多