SIMPER (R) 在 seq_len(min(which(z >= 0.7))) 中出现错误:

SIMPER (R) getting Error in seq_len(min(which(z >= 0.7))) :

我目前正在尝试 运行 将 SIMPER {vegan} 函数转换为其中包含 NA 且目前无法转换为 0 的矩阵。

我得到:

Error in seq_len(min(which(z >= 0.7))) : 
argument must be coercible to non-negative integer
In addition: Warning message:
In min(which(z >= 0.7)) : no non-missing arguments to min; returning Inf

有没有办法做到这一点,或者我必须转换数据?

谢谢, 佩德罗·L.

我想我解决了你的问题,尽管阅读了关于如何 post 可重现问题的常见问题解答。

您遇到的问题基本上是您的数据 z 中没有任何内容满足“>= 0.7”,因此返回 integer(0)。这基本上就是错误消息:“In min(which(tg >= 0.7)) : no non-missing arguments to min; returning Inf" 所指的内容。

第一条错误消息是由于您试图计算:“seq_len(integer(0))”,其中 returns:“Error in seq_len(min(which(tg >= 0.7))) : argument must be coercible to non-negative integer”。

可重现的数据:

tg<-matrix(data=seq(0.01,0.25,0.01),5,5)
seq_len(min(which(tg>=0.7)))

所以解决方案是:通过将表达式 seq_len(min(which(tg>=0.7))) 分成不同的部分来检查矩阵 "z" 及其结果。首先是 运行 which(tg>=0.7) ,然后是 min(which(tg>=0.7)) 等等。这对于一般的代码故障排除很有用。

祝你好运!