Kom igångKom igång gratis

lapply och anonyma funktioner

Att skriva egna funktioner och sedan använda dem i lapply() är en fin prestation! Men att definiera en funktion enbart för att använda den en enda gång är lite onödigt, eller hur? Därför finns det så kallade anonyma funktioner i R.

Tidigare lärde du dig att funktioner i R är objekt i sin egen rätt. Det innebär att de inte automatiskt kopplas till ett namn. När du skapar en funktion kan du använda tilldelningsoperatorn för att ge funktionen ett namn. Det är dock fullt möjligt att låta bli – det kallas en anonym funktion:

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

# Anonym funktion med samma implementation
function(x) { 3 * x }

# Använd anonym funktion inuti lapply()
lapply(list(1,2,3), function(x) { 3 * x })

split_low är redan definierad.

Den här övningen är en del av kursen

R för medelnivå

Visa kurs

Övningsinstruktioner

  • Ändra det första anropet till lapply() så att det använder en anonym funktion som gör samma sak.
  • Gör på samma sätt med det andra anropet till lapply och ersätt det med en anonym version av funktionen select_second().
  • Ta bort definitionerna av både select_first() och select_second(), eftersom de inte längre behövs.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod