【发布时间】:2013-08-12 14:11:00
【问题描述】:
这可能很简单,但为了简化它,我遗漏了正确的语法。
给定一个矩阵,找出一列中的最小值,大于某个输入参数。然后,在相应行的不同列中返回一个条目。不是很复杂......而且我发现了一些工作的东西,但是,一个更有效的解决方案将不胜感激。
我找到了这个链接:Better way to find a minimum value that fits a condition?
这很好..但是找到最少条目的方法丢失了在相应行中找到相应值所需的索引信息。
假设第 2 列是条件列,第 1 列是我要返回的列....目前我已经这样做了:(请注意,这仅适用于第 2 行充满的数字小于1).
matrix[which.max((matrix[,2]>threshhold)/matrix[,2]),1]
有什么想法吗?我期待可能有一些快速简便的功能具有这种效果...只是从未向我介绍过哈哈。
【问题讨论】:
-
单线解决您的问题有什么问题?但是,如果您的截止值是负数并且有一个大于截止值的负数条目以及正数条目,则此代码将失败。
-
@JamesPringle 我认为在寻找“更简单”的解决方案时我的主要考虑因素之一是我很快就会将此代码移交给继任者。虽然这个解决方案很简洁,但它的工作原理并不是很明显。
-
嗯,这就是代码中的 cmets 的用途。
标签: r data-manipulation