在这种情况下
id = "a"
df <- tibble(
id = c("a", "b", "c"),
value = c(1, 2, 3)
)
df %>% dplyr::filter(id == id)
我期望最后一行具有与df %>% dplyr::filter(id == "a")
相同的输出,但它仍然将id
引用为df列,而不是变量。我可以强制它查找变量id
吗?
这可以通过rlang
:中的.env
代词实现
请参阅例如这篇博客文章。
library(dplyr)
id = "a"
df <- tibble(
id = c("a", "b", "c"),
value = c(1, 2, 3)
)
df %>%
dplyr::filter(id == .env$id)
#> # A tibble: 1 × 2
#> id value
#> <chr> <dbl>
#> 1 a 1