r - 如何找到大于 0 的最低值并返回矩阵行索引?

标签 r

我想找到除 0 之外的最小值,这是我的代码:

A = 600000000
B = 450000000
C = 300000000
D = 150000000
E = 90000000
F = 60000000
G = 30000000
H = 15000000
rpl.list <- matrix(c(A,B,C,D,E,F,G,H),ncol=1)
apply(rpl.list, 2, FUN = function(x) {min(x[x > 0])})

结果是:

[1] 1.5e+07

并且该值在rpl.list[8]中,我想获取“8”值,这是该值的行号。如何获得? 我知道我可以循环 rpl.list 来查找与结果完全相同的值并返回 i,如下所示:

for(i in 1:nrow(rpl.list)){
    if(rpl.list[i] == apply(rpl.list, 2, FUN = function(x) {min(x[x > 0])})){
        temp = i
    }
}

我想知道是否有一个简单的方法来返回行号

最佳答案

我们可以将小于或等于0的值替换为NA后使用which.min

which.min(replace(rpl.list, rpl.list <= 0, NA))

关于r - 如何找到大于 0 的最低值并返回矩阵行索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51688182/

相关文章:

html - 如何将 RMarkdown 文件导出到具有两列的 HTML 文档?

r - gganimate 和(有时)空方面的问题

R 滤波器未按预期工作

r - 计算 R 中的多数票

r - 在 RStudio 中从源代码安装 R 包时出现问题 - Ubuntu 16.04

r - 如何列出任何 R 任务 View 中未包含的包?

r - 有识别单词的功能吗?

javascript - R Shiny - extendShinyjs 错误解析提供的 JavaScript 代码

r - 将字符串拆分为多列(按特定顺序)

r - 字符串中的字符频率