year species N
<int> <char> <int>
1: 1827 Quercus toxicodendrifolia 5
2: 1827 Quercus repanda 1
3: 1827 Quercus caudicans 1
4: 1828 Quercus cortesii 1
5: 1829 Quercus lancifolia 1
---
6041: 2023 Quercus hypoleucoides 1
6042: 2023 Quercus oblongifolia 1
6043: 2023 Quercus toumeyi 1
6044: 2023 Quercus viminea 1
6045: 2023 Quercus arizonica 1
Cadenas de operaciones
Una función muy importante del paquete es la capacidad de encadenar operaciones en un mismo comando sin necesidad de guardar el resultado en algun objeto.
Es una función similar al uso del pipe %>%
o |>
en tidyverse o rbase. En data table se pueden evaluar una serie de expresiones una después de la otra escribiendolas entre corchetes de esta manera:
DT[ ... ][ ... ][ ... ]
o de forma vertical
DT[ ...
][ ...
][ ...
]
Por ejemplo, recapitulando temas anteriores, utilizando la tabla de registros de plantas de México podemos:
- Seleccionar los registros del género Quercus y filtrar aquellos que no tienen información acerca de la especie o del año de colecta
library(data.table)
= fread("data/plantae_mexico_conCoords_specimen.csv")
data
== "Quercus" & !is.na(species) & species != "" & !is.na(year)] data[genus
Agrupar por especie y por año de colecta
Contar el número de registros de que se realizó para cada especie en cada año
== "Quercus" & !is.na(species) & species != "" & !is.na(year), .(.N), by = .(year,species)] data[genus
- Ordenar la columna de número de registros de mayor a menor utilizando una cadena de operaciones
== "Quercus" & !is.na(species) & species != "" & !is.na(year), .(N = .N), by = .(year,species)][order(year,-N)] data[genus