summarise {dplyr} | R Documentation

## Reduces multiple values down to a single value

### Description

`summarise()` is typically used on grouped data created by `group_by()`. The output will have one row for each group.

### Usage

    summarise(.data, ...)

    summarize(.data, ...)

### Arguments

`.data` | A tbl. All main verbs are S3 generics and provide methods for `tbl_df()`, `dtplyr::tbl_dt()` and `dbplyr::tbl_dbi()`.

`...`

Name-value pairs of summary functions. The name will be the name of the variable in the result. The value should be an expression that returns a single value like `min(x)`, `n()`, or `sum(is.na(y))`.

These arguments are automatically quoted and evaluated in the context of the data frame. They support unquoting and splicing. See `vignette("programming")` for an introduction to these concepts.

### Value

An object of the same class as `.data`. One grouping level will be dropped.

### Useful functions

- Center: `mean()`, `median()`

- Spread: `sd()`, `IQR()`, `mad()`

- Range: `min()`, `max()`, `quantile()`

- Position: `first()`, `last()`, `nth()`,

- Count: `n()`, `n_distinct()`

- Logical: `any()`, `all()`

### Backend variations

Data frames are the only backend that supports creating a variable and using it in the same summary. See examples for more details.

### Tidy data

When applied to a data frame, row names are silently dropped. To preserve, convert to an explicit variable with `tibble::rownames_to_column()`.

### See Also

Other single table verbs: `arrange`, `filter`, `mutate`, `select`, `slice`

### Examples

    # A summary applied to ungrouped tbl returns a single row
    mtcars %>%
      summarise(mean = mean(disp), n = n())

    # Usually, you'll want to group first
    mtcars %>%
      group_by(cyl) %>%
      summarise(mean = mean(disp), n = n())

    # Each summary call removes one grouping level (since that group
    # is now just a single row)
    mtcars %>%
      group_by(cyl, vs) %>%
      summarise(cyl_n = n()) %>%
      group_vars()

    # Note that with data frames, newly created summaries immediately
    # overwrite existing variables
    mtcars %>%
      group_by(cyl) %>%
      summarise(disp = mean(disp), sd = sd(disp))

    # summarise() supports quasiquotation. You can unquote raw
    # expressions or quosures:
    var <- quo(mean(cyl))
    summarise(mtcars, !! var)

[Package dplyr version 0.7.4 Index]