Anonim Fonksiyonlar
Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 27 / 64.
R'da bir fonksiyon, bir sayı veya dize gibi bir değerdir. function(x) x * 2 ona bir ad vermeden bir fonksiyon oluşturur ve son ifadesinin değeri, fonksiyonun döndürdüğü değerdir:
double <- function(x) x * 2
print(double(21))
print((function(x) x + 1)(9))Çıktı:
[1] 42
[1] 10R 4.1 kısa bir biçim ekledi: \(x), function(x) ile aynı anlama gelir. Gövde birkaç satır gerektirdiğinde süslü parantezleri kullanın:
square <- \(x) x^2
label <- function(x) {
size <- if (x > 10) "big" else "small"
paste(x, "is", size)
}
print(square(4))
print(label(12))Çıktı:
[1] 16
[1] "12 is big"Fonksiyonlar değer olduğundan, bir liste bunlardan birkaçını adlar altında tutabilir. ops[["inc"]] bir fonksiyondur; dolayısıyla ops[["inc"]](5) onu çağırır:
ops <- list(inc = \(x) x + 1, neg = \(x) -x)
print(ops[["inc"]](5))
print(names(ops))Çıktı:
[1] 6
[1] "inc" "neg"Bir işlev, tıpkı adlandırılmış bir işlev gibi, birden fazla bağımsız değişken alabilir ve bunlardan bazılarına varsayılan değerler verebilir:
area <- \(w, h = w) w * h
print(area(3))
print(area(3, 5))Çıktı:
[1] 9
[1] 15Görev
Kolayops listesini tek bir argüman alan üç anonim fonksiyonla tamamlayın:
doubleargümanın 2 ile çarpımını döndürürsquareargümanın kendisiyle çarpımını döndürürnegateargümanın işaretini tersine çevirerek döndürür
Verilen kod bir işlemin adını ve bir sayıyı okur, ops içinden bu fonksiyonu çağırır ve sonucu yazdırır.
Kendin dene
ops <- list(
# Kodunuzu buraya yazın
double = function(x) x
)
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
f <- ops[[input[1]]]
cat(f(as.numeric(input[2])), sep = "\n")
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Dizeleri Derinlemesine
substr() ile Alt Dizelersprintf() ile BiçimlendirmeBölme ve BirleştirmeDizelerde AramaMetin DeğiştirmeTekrar - Kullanıcı Adı Oluşturucu4Matrisler
Matris OluşturmaMatrisleri İndekslemeSatır ve Sütun ÖzetleriMatris AritmetiğiTekrar - Oturma Planı2Anahtar-Değer Aramaları
Adlandırılmış Vektör AramalarıAnahtarları DenetlemeAnahtar Ekleme ve KaldırmaAdlar Üzerinde DöngüTekrar - Hisse Senedi Masası5Proje - Not Defteri
Öğrenci EklemeNotları Kaydetme3Kümeler ve Sayma
Benzersiz DeğerlerKüme İşlemleriÜyelik Testleritable() ile SaymaTekrar - Etkinlik Konukları6Değer Olarak Fonksiyonlar
Anonim FonksiyonlarFonksiyonları GeçirmeFonksiyon DöndürmeDurum Bilgili Closure'larTekrar - İndirim Kuralları9Veri Çerçeveleri
Veri Çerçeveleri OluşturmaSütunlar ve SatırlarSatırları FiltrelemeEkleme ve SıralamaTekrar - Satış Raporu12Proje - Harcama Takipçisi
Harcamaları KaydetmeToplam HarcamaKendi başına pratik yap: Online R derleyicisi