'lapply arasındaki fark ne.R aradınız? | Netgez.com
SORU
29 Mayıs 2012, Salı


'lapply arasındaki fark ne.R aradınız?

Son zamanlarda R öğrenme ve iki işlevi tarafından kafam karıştı: lapplydo.call. Sadece Lisp map işlevine benzer, onlar gibi görünüyor. Ama neden farklı bir ad ile iki işlevi vardır? Neden R sadece bir fonksiyonu map adlı kullanmıyor?

CEVAP
29 Mayıs 2012, Salı


Diğer dillerde: göster benzer bir işlev Map denir

  • lapply X, her elemanı X'in karşılık gelen öğe için EÄžLENCELİ bir uygulama sonucu olarak aynı uzunlukta bir listesini verir

  • do.call bir isim veya bir iÅŸlev bağımsız deÄŸiÅŸken iÅŸlev çaÄŸrısı geçirilecek yapıları yürütür.

  • Map geçerli bir iÅŸlev için karşılık gelen elemanları verilen vektörler... Map basit bir sarıcı mapply gelmez giriÅŸimi kolaylaÅŸtırmak sonucu, benzer Common Lisp var mapcar (bağımsız deÄŸiÅŸken olmak geri dönüşümlü, ancak). Gelecek sürümleri sonuç tip bazı kontrol izin verebilir.


  1. Map mapply etrafında sarıcı
  2. lapply mapply özel bir durum
  3. Bu nedenle Map lapply birçok durumda benzer olacaktır.

Örneğin, burada lapply:

lapply(iris, class)
$Sepal.Length
[1] "numeric"

$Sepal.Width
[1] "numeric"

$Petal.Length
[1] "numeric"

$Petal.Width
[1] "numeric"

$Species
[1] "factor"

Ve aynı Map kullanarak:

Map(class, iris)
$Sepal.Length
[1] "numeric"

$Sepal.Width
[1] "numeric"

$Petal.Length
[1] "numeric"

$Petal.Width
[1] "numeric"

$Species
[1] "factor"

do.call giriş olarak işlev alır ve işlevi için başka argümanlar splatters. Yaygın olarak, örneğin, daha basit yapılar (genellikle rbind cbind ile listeleri birleştirmek için kullanılır.

Örneğin:

x <- lapply(iris, class)
do.call(c, x)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
   "numeric"    "numeric"    "numeric"    "numeric"     "factor" 

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • Helen Bradley

    Helen Bradle

    4 Mart 2008
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011