【问题标题】:Find interval from data frame start and end points从数据框起点和终点查找区间
【发布时间】:2016-11-08 16:26:47
【问题描述】:

我有数据框(DF):

Start  End  Result
2      300  FL91
5      250  FL12
550    750  FL18
720    900  FL41

我想找到“开始”“结束”之间的所有“结果”(所以,我想找到所有“开始”和“结束”点小于 81 的区间内的“结果” . 我试过了:

y <- 81
findInterval(y, DF$Start, DF$End)

但是我遇到了这样的错误:'vec' 必须以非递减方式排序并且不包含 NA。 我确信我的数据框不包含 NA 并且没有递减排序。 我也尝试使用类似主题的建议,但无法找出解决方案。

Extracting data from data frame

Interval search on a data frame

那么,我该怎么办?

【问题讨论】:

    标签: r dataframe intervals


    【解决方案1】:

    您可以使用现成的函数或创建自己的函数:

    findInt <- function(value, start, end) {
      start < value & end > value
    }
    
    indx <- findInt(81, DF$Start, DF$End)
    DF$Result[indx]
    #[1] "FL91" "FL12"
    

    【讨论】:

      【解决方案2】:

      可能是这样的

      [1]  TRUE  TRUE FALSE FALSE
      > df[df[,1] <= 81 & 81 <=  df[,2], 3]
      [1] FL91 FL12
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-25
        • 2020-11-24
        • 1970-01-01
        相关资源
        最近更新 更多