R 根据大于或小于从函数输出中提取值

R 根据大于或小于从函数输出中提取值,r,math,dataframe,arithmetic-expressions,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,

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

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))
}`    
我想知道是否有一种方法可以根据时间值的高低来提取时间值?在上面的例子中,我想创建一个函数,可以提取2.00以上的值,这样它就可以有如下输出:

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

最后,我想创建一个不同的函数来提取低于1.00的值,然后进一步创建另一个不同的函数来组合这两个值,但我想,一旦我知道如何做第一部分,我就可以这样做了!非常感谢您的回复。

这是您的数据框:

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))

您可以使用dplyr::filterdf,Time>2.00df[df$Time>2],我已经使用了您建议的代码,非常好,谢谢!但现在我遇到了一个问题,所以现在我想知道如何:A.过滤掉数字4和5,或者B.为数字4和5创建一个不同的时间过滤器。我试着用filterbetweenID,1,3来做A,但不起作用。如果可能的话,我宁愿和B一起去。所以有点像。。。对于ID号1-3:过滤器!在时间之间,1,2表示ID号1-4:过滤器!在同一功能内的时间1.5和2.3之间。在过去的一天里,我一直在尝试一些东西,但不断收到错误消息。如果您只需要值%filterTime
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))
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