Sustituciones

R
R Tips
Autor/a

David Mateos

Fecha de publicación

14 de julio de 2023

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