首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何找到大于0的最低值并返回矩阵行索引?

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

Stack Overflow用户
提问于 2018-08-05 01:47:52
回答 2查看 57关注 0票数 2

我想要找到不包括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.list8中,我想要得到"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
    }
}

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-05 04:03:08

删除所有小于或等于零的值,然后对剩余的值进行排序。找到数据中与最小值匹配的值,并给出它的索引。

which(rpl.list==sort(rpl.list[rpl.list>0])[1])
票数 1
EN

Stack Overflow用户

发布于 2018-08-05 01:50:45

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

which.min(replace(rpl.list, rpl.list <= 0, NA))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51688182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档