我刚开始学习 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/