r-引用dplyr筛选器中具有相同名称的列和变量

  • 本文关键字:变量 dplyr 引用 筛选 r dplyr
  • 更新时间 :
  • 英文 :


在这种情况下

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

最新更新