gpt4 book ai didi

r - 标准评估为 `dplyr::count()`

转载 作者:行者123 更新时间:2023-12-02 03:19:17 26 4
gpt4 key购买 nike

如何将字符向量传递给 dplyr::count() .

library(magrittr)
variables <- c("cyl", "vs")

mtcars %>%
dplyr::count_(variables)

这很好用,但是dplyr v0.8抛出警告:

count_() is deprecated. Please use count() instead

The 'programming' vignette or the tidyeval book can help you to program with count() : https://tidyeval.tidyverse.org

我没有看到引用名称或 dplyr::count() 的标准评估示例在 https://tidyeval.tidyverse.org/dplyr.htmltidyeval book 当前版本的其他章节和 Programming with dplyr .

阅读本文档和 another SO question 后我的两个最佳猜测是

mtcars %>% 
dplyr::count(!!variables)

mtcars %>%
dplyr::count(!!rlang::sym(variables))

抛出这两个错误:

Error: Column <chr> must be length 32 (the number of rows) or one, not 2

Error: Only strings can be converted to symbols

最佳答案

要从字符串创建符号列表,您需要 rlang::syms (而不是 rlang::sym)。要取消引用列表或向量,您需要使用 !!! (而不是 !!)。以下内容将起作用:

library(magrittr)

variables <- c("cyl", "vs")

vars_sym <- rlang::syms(variables)
vars_sym
#> [[1]]
#> cyl
#>
#> [[2]]
#> vs

mtcars %>%
dplyr::count(!!! vars_sym)
#> # A tibble: 5 x 3
#> cyl vs n
#> <dbl> <dbl> <int>
#> 1 4 0 1
#> 2 4 1 10
#> 3 6 0 3
#> 4 6 1 4
#> 5 8 0 14

关于r - 标准评估为 `dplyr::count()`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55248374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com