如何在dplyr::filter中添加字符变量?

ovfsdjhp  于 2023-04-09  发布在  其他
关注(0)|答案(1)|浏览(115)

我有一个数据。帧的物种,我想给予我一个数据的功能。帧根据栖息地的类型。问题是,过滤器要求“文本”,而不是一个变量。你知道如何命名创建的 Dataframe 根据一个变量?有一个美好的一天
下面是代码的一部分:

table = data_frame(
  Habitat = c("Habitat1", "Habitat2"),
  Species = c("Sp1", "Sp2")
)

fct = function(habitat, tabl_habitat){
  table %>% 
  dplyr::filter(Habitat == habitat) ->
  tabl_habitat

fct("Habitat1", "Habitat1")  #does not work, neither one nor the other
km0tfn4u

km0tfn4u1#

您可以直接分配函数的输出,而不是让函数在您的环境中分配新对象。

fct = function(habitat){
  
  table %>% 
    dplyr::filter(Habitat == {{habitat}})
}
  
  
Habitat1 <- fct('Habitat1')
Habitat1
#> # A tibble: 1 × 2
#>   Habitat  Species
#>   <chr>    <chr>  
#> 1 Habitat1 Sp1

相关问题