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