開始使用免費開始

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)
編輯並執行程式碼