根据大于或小于从函数输出中提取值
Extracting values from function output based on being greater than or less than
我使用这段代码创建了多个函数:
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 的值,然后通过为两者的组合创建另一个不同的函数来更进一步,但我认为一旦我知道如何做到这一点做第一部分!非常感谢任何回复。
这是您的数据框:
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
和 !
保留值 <=1 和 >=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
我使用这段代码创建了多个函数:
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 的值,然后通过为两者的组合创建另一个不同的函数来更进一步,但我认为一旦我知道如何做到这一点做第一部分!非常感谢任何回复。
这是您的数据框:
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