【问题标题】:min(which()) not retrieving the correct number under conditionmin(which()) 在条件下没有检索到正确的数字
【发布时间】:2021-10-31 07:21:48
【问题描述】:

我有一个 4 x 600 的数据表,其中包含 3 个数字列,随机整数范围从 0 到 700。我已将变量定义为值为 542 的整数。我正在尝试识别大于 542 的最小值在每个数字列中。但是,以下工作但拉错了值,知道为什么吗?或者如果我做错了什么?

#data.table called df with numeric columns being b,c,d

a <- as.integer(542)
min(which(df$b > a))
[1] 131

这怎么可能?我知道此列的正确值应该是 543。

【问题讨论】:

    标签: r min


    【解决方案1】:

    which 的输出是一个位置索引,min 应用于which 返回最小位置而不是最小值位置。使用which 的输出提取'b' 中的值,然后用min 包装

    min(df$b[which(df$b > a)])
    

    【讨论】:

    • 谢谢,这正是我所需要的。
    【解决方案2】:

    你应该知道which.min等价于

    which(x == min(x, na.rm = TRUE))
    

    而且肯定和min(which(x))不一样

    【讨论】:

    • 抱歉,这是我之前尝试过的方法之一,但无济于事,但感谢您提供的信息。我也更新了标题以反映这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2021-01-26
    • 2019-10-07
    • 1970-01-01
    • 2015-03-02
    相关资源
    最近更新 更多