lapply y las funciones anónimas

Escribir tus propias funciones y utilizarlas dentro de lapply() es todo un logro. Sin embargo, definir funciones para utilizarlas solo una vez es un poco exagerado, ¿no? Por eso en R puedes utilizar las llamadas funciones anónimas.

Anteriormente, aprendiste que las funciones en R son objetos por derecho propio. Esto significa que no están vinculadas automáticamente a un nombre. Cuando creas una función, puedes utilizar el operador de asignación para darle un nombre a esa función. Sin embargo, es perfectamente posible no dar un nombre a la función. Esto se llama función anónima:

# Named function
triple <- function(x) { 3 * x }

# Anonymous function with same implementation
function(x) { 3 * x }

# Use anonymous function inside lapply()
lapply(list(1,2,3), function(x) { 3 * x })

split_low está definido.

Este ejercicio forma parte del curso

R intermedio

Ver curso

Instrucciones de ejercicio

  • Transforma la primera llamada de lapply() para que utilice una función anónima que haga lo mismo.
  • De forma similar, convierte la segunda llamada de lapply para utilizar una versión anónima de la función select_second().
  • Elimina las dos definiciones de select_first() y select_second(), porque ya no son útiles.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# split_low has been created for you
split_low

# Transform: use anonymous function inside lapply
select_first <- function(x) {
  x[1]
}
names <- lapply(split_low, select_first)

# Transform: use anonymous function inside lapply
select_second <- function(x) {
  x[2]
}
years <- lapply(split_low, select_second)