НачатьНачать бесплатно

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 уже определён для вас.

Это упражнение является частью курса

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