我使用此代码创建了多个函数:
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的值,然后通过为两者的组合创建另一个不同的函数来进一步,但我想我可以做到这一点,一旦我知道如何做第一部分!任何回应都非常感谢。
答案 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))
您可以使用filter
,between
和!
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