从数据框中提取具有最小值或最大值的行
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
等中的行数时。希望这是有道理的。
【讨论】:
以上是关于从数据框中提取具有最小值或最大值的行的主要内容,如果未能解决你的问题,请参考以下文章