Dos funciones que he descubierto recientemente en R y que me están resultando muy útiles para pasar parámetros opcionales a las funciones
modifyList y %||% de rlang
normalizar_forcipula <- function(tabla_forcipula, tabla_ifn, nombres_column = list()) {
default_colnames <- list(especie = "especie", filename = "filename", d1 = "d1", d2 = "d2", h = "h")
nombres_column <- modifyList(default_colnames, nombres_column)
# código
nombres_column
}De forma que tengo unos nombres por defecto para las columnas de una tabla, no hace falta meterlos cada vez:
normalizar_forcipula(df, ifn) # nombres por defecto\(especie [1] "especie"\)filename
[1] “filename”
\(d1 [1] "d1"\)d2
[1] “d2”
$h
[1] “h”
Pero el usuario puede cambiar el valor de uno o varios sin tener que meterlos todos otra vez así:
normalizar_forcipula(df, ifn, nombres_column = list(d1 = "diametro", filename = "archivo")) \(especie [1] "especie"\)filename
[1] “archivo”
\(d1 [1] "diametro"\)d2
[1] “d2”
$h
[1] “h”
La otra, es una forma más sencilla de escribir lo siguiente:
if (is.null(parametro)) {
parametro <- 42
}así:
parametro <- parametro %||% 42