【问题标题】:Find the nearest bigger number in R在R中找到最近的更大的数字
【发布时间】:2022-11-30 10:51:50
【问题描述】:

我有一个这样的数据集:

row  num Group
  1 3     B
  2 6     A
  3 12    A
  4 15    B
  5 16    A
  6 18    A
  7 20    B
  8 25    A
  9 27    B
 10 29    B

在 R 中, 我想将输入数字与中的值进行比较,我想找到最近的更大值的位置A组只要。

例如,如果输入数字是8,那么A组中最接近,较大的值应该是12,我想得到它的位置应该是3。如果输入是18,那么返回值应该是18,并且位置应该是6。如果输入是20,那么返回值应该是25,位置应该是8。

我试过 which.min,但出于某种原因,无论我输入多少,总是返回索引 1。

#called the dataset f

which.min(f$num[f$Group=="A"][f$num[f$Group=="A"]>=8])

对此有任何想法,我将不胜感激。

谢谢你。

【问题讨论】:

    标签: r numeric


    【解决方案1】:

    这是dplyr的一种方式

    library(dplyr)
    
    df <-
      data.frame(
        row = 1:10,
        num = cumsum(rep(3,10)),
        group = c("B","A","A","B","A","A","B","A","B","B")
      )
    
    df %>% 
      filter(num >= 8) %>% 
      slice_min(order_by = row) %>% 
      pull(row)
    
    [1] 3
    

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-19
      • 2020-02-19
      相关资源
      最近更新 更多