【发布时间】:2017-12-26 20:17:00
【问题描述】:
在Base R中,是否可以取出(即只返回值)出现频率最高的元素以下矩阵中的行?
更新: @d.b 看到您的解决方案似乎从下面的矩阵 CI.test 中选择了错误的对。 CI 可以从您的解决方案中挑选,CI.test 是从中挑选最频繁行的元素的矩阵:
N = 60 ; df = N-1 ; d = 3
f <- function (ncp, alpha, q, df) {
abs(suppressWarnings(pt(q = d*sqrt(N), df = df, ncp, lower.tail = FALSE)) - alpha)
}
a = mapply(c, as.list(20:30), as.list(-20:-30), SIMPLIFY = FALSE) # a list of paired values
CI.test <- matrix(NA, length(a), 2)
for(i in 1:length(a)){
CI.test[i,] = sapply(c(0.025, 0.975),
function(x) optimize(f, interval = a[[i]], alpha = x, q = d*sqrt(N), df = df, tol = 1e-10)[[1]])
}
CI = CI.test[which.max(ave(1:nrow(CI.test), do.call(paste, data.frame(CI.test)), FUN = seq_along)), ]
list(CI, CI.test)
【问题讨论】:
-
你的预期输出是什么?