【问题标题】: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),]

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

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

【问题讨论】:

  • 谢谢大家的回答。但是,正确的方法有点奇怪,因为代码中有很多冗余!还是谢谢

标签: r dataframe subset extract min


【解决方案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 等中的行数时。希望这是有道理的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-05
      • 2020-12-23
      • 2019-11-22
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多