我如何使用dqr过滤数据,使结果df不按原始顺序显示数据,而是按过滤查询向量的顺序显示数据?请参见下面的示例:
df <- tibble(name = letters,
score = 1:26)
df %>% filter(name %in% c("g","m","b"))
我得到"b,g,m",过滤我想要得到"g,m,b"的地方.在Filter()中可以实现吗?
我如何使用dqr过滤数据,使结果df不按原始顺序显示数据,而是按过滤查询向量的顺序显示数据?请参见下面的示例:
df <- tibble(name = letters,
score = 1:26)
df %>% filter(name %in% c("g","m","b"))
我得到"b,g,m",过滤我想要得到"g,m,b"的地方.在Filter()中可以实现吗?
filter
不太可能,因为条件只是对每行应用相同的判断,并保留那些通过测试的行.一种迂回的方法,但也许可以通过连接来解决:
library(tidyverse)
df <- tibble(name = letters,
score = 1:26)
df %>%
left_join(tibble(name = c("g", "m", "b")), .)
#> Joining with `by = join_by(name)`
#> # A tibble: 3 × 2
#> name score
#> <chr> <int>
#> 1 g 7
#> 2 m 13
#> 3 b 2