从数据框中提取具有最小值或最大值的行

Posted

技术标签:

【中文标题】从数据框中提取具有最小值或最大值的行【英文标题】:Extract rows with min or max value from a Data Frame 【发布时间】:2020-07-13 08:51:38 【问题描述】:

我正在https://bioinformatics-core-shared-training.github.io/r-crash-course/crash-course.nb.html 为 R 开设速成课程

我面临的问题是提取某个值的最小值或最大值的行。

例如运行时

df[df$tmp ==min(df$tmp),]

我得到了具有预期值的正确行。

但是,当运行以下代码时

df[min(df$tmp),]

我得到了完全不同的东西。

我想知道是什么导致了这种差异?

【问题讨论】:

谢谢大家的回答。但是,正确的方法有点奇怪,因为代码中有很多冗余!还是谢谢 【参考方案1】:

假设 df$Tmp 是没有 NA 的数字,min(df$Tmp) 应该返回一个数字。假设该数字是整数,则 i, df[min(df$Tmp),] 将返回数据框的第 i 行,假设您的数据框有第 i 行。

另一方面,df[df$Tmp ==min(df$tmp),] 将返回 df 的行,其中df$Tmp 等于该列中的最小值。

【讨论】:

【参考方案2】:

df[df$Tmp ==min(df$tmp),] 是获得所需内容的正确方法。

df[min(df$Tmp),] 返回df 中等于min(df$Tmp) 的行。在某些情况下可能会导致错误,例如当min(df$Tmp) 不是整数,或者是负数,或者它大于df 等中的行数时。希望这是有道理的。

【讨论】:

以上是关于从数据框中提取具有最小值或最大值的行的主要内容,如果未能解决你的问题,请参考以下文章

从数据框中删除重复项,基于两列 A,B,在另一列 C 中保持具有最大值的行

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?

用于创建具有数据框中每个日期的最小值和最大值的表的函数

根据熊猫数据框中的条件获取最大值和最小值

获取数据框中缺失的行

从熊猫数据框中获取最小和最大日期