lapply ve anonim fonksiyonlar
Kendi fonksiyonlarını yazıp sonra bunları lapply() içinde kullanmak gerçekten büyük bir adım! Ama sadece bir kez kullanacağın fonksiyonları tanımlamak biraz aşırı değil mi? İşte bu yüzden R'de anonim fonksiyonlar kullanabilirsin.
Daha önce, R'deki fonksiyonların başlı başına birer nesne olduğunu öğrenmiştin. Bu da onların otomatik olarak bir isimle bağlanmadığı anlamına gelir. Bir fonksiyon oluşturduğunda, atama operatörüyle ona bir isim verebilirsin. Ancak fonksiyona isim vermemek de tamamen mümkündür. Buna anonim fonksiyon denir:
# İsimli fonksiyon
triple <- function(x) { 3 * x }
# Aynı uygulamaya sahip anonim fonksiyon
function(x) { 3 * x }
# lapply() içinde anonim fonksiyon kullanımı
lapply(list(1,2,3), function(x) { 3 * x })
split_low senin için tanımlandı.
Bu egzersiz, kursun bir parçasıdır
Orta Düzey R
Egzersiz talimatları
- İlk
lapply()çağrısını, aynı işi yapan anonim bir fonksiyon kullanacak şekilde dönüştür. - Benzer şekilde, ikinci
lapplyçağrısınıselect_second()fonksiyonunun anonim sürümünü kullanacak biçimde çevir. - Artık işe yaramadıkları için
select_first()veselect_second()tanımlarını kaldır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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)