将参数传递给 adorn_totals 中的 ellipsis(...)

M A*_*lio 3 r janitor

我怎样才能传递应该考虑的列adorn_totals而不传递其他参数。

\n
library(dplyr)\nlibrary(janitor)\n\nmtcars %>% \n  count(vs,am) %>% \n  adorn_totals()\n#>     vs am  n\n#>      0  0 12\n#>      0  1  6\n#>      1  0  7\n#>      1  1  7\n#>  Total  2 32\n
Run Code Online (Sandbox Code Playgroud)\n

我不想计算“AM”列中的总计,只计算“n”列中的总计。我知道我可以通过在函数末尾传递列名来做到这一点,但要做到这一点,你必须首先传递所有其他参数adorn_totals(,,,, n),这很丑陋。

\n

有没有办法直接做到这一点,如:

\n
mtcars %>% \n  count(vs,am) %>%\n  adorn_totals(... = n)\n#> Error in `adorn_totals()`:\n#> ! Names can\'t be of the form `...` or `..j`.\n#> \xe2\x9c\x96 These names are invalid:\n#>   * "..." at location 1.\n#> Backtrace:\n#>      \xe2\x96\x86\n#>   1. \xe2\x94\x9c\xe2\x94\x80mtcars %>% count(vs, am) %>% adorn_totals(... = n)\n#>   2. \xe2\x94\x94\xe2\x94\x80janitor::adorn_totals(., ... = n)\n#>   3.   \xe2\x94\x94\xe2\x94\x80tidyselect::eval_select(expr, data = dat)\n#>   4.     \xe2\x94\x94\xe2\x94\x80tidyselect:::eval_select_impl(...)\n#>   5.       \xe2\x94\x9c\xe2\x94\x80tidyselect:::with_subscript_errors(...)\n#>   6.       \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80rlang::try_fetch(...)\n#>   7.       \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80base::withCallingHandlers(...)\n#>   8.       \xe2\x94\x94\xe2\x94\x80tidyselect:::vars_select_eval(...)\n#>   9.         \xe2\x94\x94\xe2\x94\x80tidyselect:::ensure_named(...)\n#>  10.           \xe2\x94\x94\xe2\x94\x80vctrs::vec_as_names(names(pos), repair = "check_unique", call = call)\n#>  11.             \xe2\x94\x94\xe2\x94\x80vctrs (local) `<fn>`()\n#>  12.               \xe2\x94\x94\xe2\x94\x80vctrs:::validate_unique(names = names, arg = arg, call = call)\n#>  13.                 \xe2\x94\x94\xe2\x94\x80vctrs:::stop_names_cannot_be_dot_dot(names, call = call)\n#>  14.                   \xe2\x94\x94\xe2\x94\x80vctrs:::stop_names(...)\n#>  15.                     \xe2\x94\x94\xe2\x94\x80vctrs:::stop_vctrs(...)\n#>  16.                       \xe2\x94\x94\xe2\x94\x80rlang::abort(message, class = c(class, "vctrs_error"), ..., call = vctrs_error_call(call))\n
Run Code Online (Sandbox Code Playgroud)\n

Geo*_*vva 5

作为一种技巧,您可以为该参数指定一个名称,该名称不在 的命名参数中adorn_totals。那是:

mtcars %>% 
  count(vs,am) %>% 
  adorn_totals(cols=n)

    vs am  n
     0  0 12
     0  1  6
     1  0  7
     1  1  7
 Total  - 32
Run Code Online (Sandbox Code Playgroud)