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)