Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
options(datatable.print.class = TRUE)This is a growing list of slightly more advanced examples using data.table.
Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
options(datatable.print.class = TRUE).N
peng <- as.data.table(penguins)Example: Count penguins by island:
peng[, .N, by = island] island N
<fctr> <int>
1: Torgersen 52
2: Biscoe 168
3: Dream 124
Example: Count by island and species:
peng[, .N, by = list(island, species)] island species N
<fctr> <fctr> <int>
1: Torgersen Adelie 52
2: Biscoe Adelie 44
3: Dream Adelie 56
4: Biscoe Gentoo 124
5: Dream Chinstrap 68
.I
For example, get index for min or max within each group, where index refers to the entire data.table.
Look at the documentation for .I
ir <- as.data.table(iris)
ir[, .I[which.max(Petal.Width)], by = Species] Species V1
<fctr> <int>
1: setosa 44
2: versicolor 71
3: virginica 101
Use that to get the case with max Petal.Width from each Species
ir[, ir[, .I[which.max(Petal.Width)], by = Species][[2]]][1] 44 71 101