ПочатиПочніть безкоштовно

lapply та анонімні функції

Створити власні функції й використовувати їх усередині lapply() — це справжнє досягнення! Але визначати функції лише заради одноразового використання — трохи занадто, чи не так? Саме тому в R можна застосовувати так звані анонімні функції.

Раніше ви дізналися, що функції в R є повноцінними об'єктами. Це означає, що їх не обов'язково відразу пов'язувати з іменем. Коли ви створюєте функцію, ви можете використати оператор присвоєння, щоб дати їй назву. Проте цілком можливо й не надавати функції імені. Таку функцію називають анонімною:

# Іменована функція
triple <- function(x) { 3 * x }

# Анонімна функція з тією самою реалізацією
function(x) { 3 * x }

# Використання анонімної функції всередині lapply()
lapply(list(1,2,3), function(x) { 3 * x })

split_low уже визначено для вас.

Ця вправа є частиною курсу

Середній рівень R

Переглянути курс

Інструкції до вправи

  • Змініть перший виклик lapply() так, щоб він використовував анонімну функцію з тим самим результатом.
  • Аналогічно перетворіть другий виклик lapply, щоб використати анонімну версію функції select_second().
  • Видаліть обидва визначення select_first() та select_second(), адже вони більше не потрібні.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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)
Редагувати та запускати код