R 计算模式或第二/第三/第四最常用值
当然,一定有一个功能,在那里的一些包为这个 我已搜索并找到此函数来计算模式:R 计算模式或第二/第三/第四最常用值,r,function,mode,R,Function,Mode,当然,一定有一个功能,在那里的一些包为这个 我已搜索并找到此函数来计算模式: Mode <- function(x) { ux <- unique(x) ux[which.max(tabulate(match(x, ux)))] } Mode也许你可以试试 f <- function (x) with(rle(sort(x)), values[order(lengths, decreasing = TRUE)]) 但不建议这样做,因为输入向量x将被强制为因子优先。如
Mode <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
Mode也许你可以试试
f <- function (x) with(rle(sort(x)), values[order(lengths, decreasing = TRUE)])
但不建议这样做,因为输入向量x
将被强制为因子优先。如果你有一个大的向量,这是非常缓慢的。同样在退出时,我们必须提取表的字符名和字符名,并将其强制为数字
示例
set.seed(0); x <- rpois(100, 10)
f(x)
# [1] 11 12 7 9 8 13 10 14 5 15 6 2 3 16
因此结果是相同的。可能需要排序()的名称(表(x))[1]。显然,这可以被增强以处理多种模式。也许对于Breviti来说,值[顺序(-length)]
我听到了。没有对错,只是短一点。你可能会激怒坚持的人。他们不喜欢缩写逻辑。
set.seed(0); x <- rpois(100, 10)
f(x)
# [1] 11 12 7 9 8 13 10 14 5 15 6 2 3 16
tab <- sort(table(x), decreasing = TRUE)
# 11 12 7 9 8 13 10 14 5 15 6 2 3 16
# 14 14 11 11 10 10 9 7 5 4 2 1 1 1
as.numeric(names(tab))
# [1] 11 12 7 9 8 13 10 14 5 15 6 2 3 16