tally {dplyr} | R Documentation

## Count/tally observations by group

### Description

`tally()` is a convenient wrapper for summarise that will either call `n()` or `sum(n)` depending on whether you're tallying for the first time, or re-tallying. `count()` is similar but calls `group_by()` before and `ungroup()` after.

`add_tally()` adds a column "n" to a table based on the number of items within each existing group, while `add_count()` is a shortcut that does the grouping as well. These functions are to `tally()` and `count()` as `mutate()` is to `summarise()`: they add an additional column rather than collapsing each group.

### Usage

    tally(x, wt, sort = FALSE)

    count(x, ..., wt = NULL, sort = FALSE)

    add_tally(x, wt, sort = FALSE)

    add_count(x, ..., wt = NULL, sort = FALSE)

### Arguments

`x` | a `tbl()` to tally/count.
`wt` | (Optional) If omitted, will count the number of rows. If specified, will perform a "weighted" tally by summing the (non-missing) values of variable `wt`. This argument is automatically quoted and later evaluated in the context of the data frame. It supports unquoting. See `vignette("programming")` for an introduction to these concepts.
`sort` | if `TRUE` will sort output in descending order of `n`
`...` | Variables to group by.

### Value

A tbl, grouped the same way as `x`.

### Note

The column name in the returned data is usually `n`, even if you have supplied a weight.

If the data already already has a column named `n`, the output column will be called `nn`. If the table already has columns called `n` and `nn` then the column returned will be `nnn`, and so on.

There is currently no way to control the output variable name - if you need to change the default, you'll have to write the `summarise()` yourself.

### Examples

    # tally() is short-hand for mutate()
    mtcars %>% tally()
    # count() is a short-hand for group_by() + tally()
    mtcars %>% count(cyl)

    # add_tally() is short-hand for mutate()
    mtcars %>% add_tally()
    # add_count() is a short-hand for group_by() + add_tally()
    mtcars %>% add_count(cyl)

    # count and tally are designed so that you can call
    # them repeatedly, each time rolling up a level of detail
    species <- starwars %>% count(species, homeworld, sort = TRUE)
    species
    species %>% count(species, sort = TRUE)

    # add_count() is useful for groupwise filtering
    # e.g.: show only species that have a single member
    starwars %>%
      add_count(species) %>%
      filter(n == 1)

[Package dplyr version 0.7.0 Index]