r - 在 R 中找到第二低的非零值

标签 r min

我刚开始学习 R,我需要一些帮助。

我想在某些列中找到最低的非零数字,但如果最低的数字是零,那么我想要第二低的数字。

我的代码现在看起来像这样:

aggregate(M3klar2[,32:35],M3klar2["ID"], function(x) if(min(x)>0) min(x) else if(min(x==0) ??second lowest?? )

if(min(x==0)) 之后我应该写什么? 或任何其他建议?

最佳答案

您不需要 if 语句。

x <- c(0,0,2,3,4,5,6)
> min(x[x > 0])
[1] 2

应用于特定列(如@Stephen Henderson 所建议)

apply(df[,my.choice],2, min(x[x > 0]))

或者,如果您也有负数,则可以将 x>0 替换为 x!=0(@docendo discimus 给出的说明)

关于r - 在 R 中找到第二低的非零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313694/

相关文章:

r - merge.xts 在合并每周系列时产生错误结果

javascript - 我在 javascript 中有一个低温数组,我需要获得最低温度,所以我使用了 min.math 函数

mongodb - mongodb中的最大值和最小值

mysql - 从表中删除最小值

r - 如果无法安装R软件包,如何使install.packages返回错误?

r - 如何像在 facet_grid 中一样在 facet_wrap 中定位 strip 标签

r - 尝试根据点之间的距离绘制圆圈

Java-寻找有关计算函数的最小值/最大值或步长间隔中的导数的建议

sqlite - 使用 SQLite 递归连接和 group_concat

r - 计算累积超几何分布