我正在尝试将 which.max 的结果与 0 进行比较,以检查是否在数据中找到任何最大值。解释:大约有 24.000 个向量,我必须检查它们的最大值索引。
这是一个小例子:
tmp <- which.max(c(NA, NA, NA, NA))
str(tmp)
tmp == 0
as.integer(tmp) == 0
as.numeric(tmp) == 0
它导致 FALSE、FALSE 和 FALSE - 尽管 str(tmp) 返回 int(0)。
我做的解决方法是:
tmp <- which.max(c(NA, NA, NA, NA))
isTRUE(as.logical(tmp))
如果 which.max() 是否找到最大值,这将起作用。但是我不明白为什么上述比较不起作用。
额外的问题:除了 str() 之外,还有其他函数可以轻松地向我展示 tmp 对象的结构以立即理解比较失败吗?
谢谢!