Skip to content

c_across() is designed to work with rowwise() to make it easy to perform row-wise aggregations. It has two differences from c():

  • It uses tidy select semantics so you can easily select multiple variables. See vignette("rowwise") for more details.

  • It uses vctrs::vec_c() in order to give safer outputs.

Usage

c_across(cols)

Arguments

cols

<tidy-select> Columns to transform. You can't select grouping columns because they are already automatically handled by the verb (i.e. summarise() or mutate()).

See also

across() for a function that returns a tibble.

Examples

df <- tibble(id = 1:4, w = runif(4), x = runif(4), y = runif(4), z = runif(4))
df %>%
  rowwise() %>%
  mutate(
    sum = sum(c_across(w:z)),
    sd = sd(c_across(w:z))
  )
#> # A tibble: 4 × 7
#> # Rowwise: 
#>      id      w       x     y     z   sum    sd
#>   <int>  <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1     1 0.215  0.613   0.734 0.342  1.90 0.239
#> 2     2 0.825  0.638   0.717 0.477  2.66 0.147
#> 3     3 0.0787 0.864   0.868 0.665  2.47 0.372
#> 4     4 0.587  0.00807 0.948 0.380  1.92 0.393