基于大于或小于的函数输出从函数输出中提取值

时间:2017-07-06 18:23:29

标签: r math dataframe arithmetic-expressions

我使用此代码创建了多个函数:

getT <- function(df, ID, Number){
  df %>%
    group_by(ID, Number) %>% 
    mutate( Distance = finish - begin) %>% 
    select(-begin,-finish,-symbols) %>%
    nest() %>% 
    mutate( data = map( data, ~ filter(.x, Distance == max(Distance)))) %>% 
    unnest()
}

getallT <- as.data.frame(getT(df))

getTID <- function(df, ID) {
  df1 <- getallT(df)
  subset(x = getallT, subset = (ID))
}`    

这给了我这样的输出:

ID     Number     Time     Distance
33         1      2.00         870
33         2      1.98         859
33         3      0.82         305
33         4      2.02         651
33         5      2.53         502

我想知道是否有办法根据值的低或高来提取Time值?在上面的例子中,我想创建一个可以提取高于2.00的值的函数,所以它会有这样的输出:

ID     Number     Time     Distance
33         4      2.02         651
33         5      2.53         502

最后,我想创建一个不同的函数来提取低于1.00的值,然后通过为两者的组合创建另一个不同的函数来进一步,但我想我可以做到这一点,一旦我知道如何做第一部分!任何回应都非常感谢。

1 个答案:

答案 0 :(得分:1)

这是您的数据框:

df <- data.frame(ID=rep(33,5),
                 Number=1:5,
                 Time=c(2.00,1.98,0.82,2.02,2.53),
                 Distance=c(870,859,305,651,502))

您可以使用filterbetween!

保持值&lt; = 1和&gt; = 2
df <- df %>% filter(!between(Time,1,2))

  ID Number Time Distance
1 33      3 0.82      305
2 33      4 2.02      651
3 33      5 2.53      502