【问题标题】:Referring to columns and variables with the same name in dplyr filter在 dplyr 过滤器中引用同名的列和变量
【发布时间】:2022-01-18 03:38:00
【问题描述】:

鉴于这种情况

id = "a"

df <- tibble(
  id = c("a", "b", "c"),
  value = c(1, 2, 3)
)

df %>% dplyr::filter(id == id)

我希望最后一行与df %&gt;% dplyr::filter(id == "a") 具有相同的输出,但它仍然将id 称为df 列而不是变量。我可以强制它查找变量id吗?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    这可以通过rlang 中的.env 代词来实现:

    参见例如这个blog post

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2021-09-21
      • 1970-01-01
      • 2018-09-22
      • 2020-09-01
      • 2023-02-01
      • 2019-04-04
      相关资源
      最近更新 更多