This is a method for the dplyr count() generic. It is translated using .N in the j argument, and supplying groups to keyby as appropriate.

# S3 method for dtplyr_step
count(.data, ..., wt = NULL, sort = FALSE, name = NULL)

Arguments

.data

A lazy_dt()

...

<data-masking> Variables to group by.

wt

<data-masking> Frequency weights. Can be NULL or a variable:

  • If NULL (the default), counts the number of rows in each group.

  • If a variable, computes sum(wt) for each group.

sort

If TRUE, will show the largest groups at the top.

name

The name of the new column in the output.

If omitted, it will default to n. If there's already a column called n, it will error, and require you to specify the name.

Examples

library(dplyr, warn.conflicts = FALSE) dt <- lazy_dt(dplyr::starwars) dt %>% count(species)
#> Source: local data table [38 x 2] #> Call: `_DT5`[, .(n = .N), keyby = .(species)] #> #> species n #> <chr> <int> #> 1 NA 4 #> 2 Aleena 1 #> 3 Besalisk 1 #> 4 Cerean 1 #> 5 Chagrian 1 #> 6 Clawdite 1 #> # … with 32 more rows #> #> # Use as.data.table()/as.data.frame()/as_tibble() to access results
dt %>% count(species, sort = TRUE)
#> Source: local data table [38 x 2] #> Call: `_DT5`[, .(n = .N), keyby = .(species)][order(-n)] #> #> species n #> <chr> <int> #> 1 Human 35 #> 2 Droid 6 #> 3 NA 4 #> 4 Gungan 3 #> 5 Kaminoan 2 #> 6 Mirialan 2 #> # … with 32 more rows #> #> # Use as.data.table()/as.data.frame()/as_tibble() to access results
dt %>% count(species, wt = mass, sort = TRUE)
#> Source: local data table [38 x 2] #> Call: `_DT5`[, .(n = sum(mass, na.rm = TRUE)), keyby = .(species)][order(-n)] #> #> species n #> <chr> <dbl> #> 1 Human 1821. #> 2 Hutt 1358 #> 3 Droid 279 #> 4 Wookiee 248 #> 5 Kaleesh 159 #> 6 Gungan 148 #> # … with 32 more rows #> #> # Use as.data.table()/as.data.frame()/as_tibble() to access results