'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
Diğer dillerde: göster benzer bir işlev Map denir
lapplyX, her elemanı X'in karşılık gelen öğe için EĞLENCELİ bir uygulama sonucu olarak aynı uzunlukta bir listesini verirdo.callbir isim veya bir işlev bağımsız değişken işlev çağrısı geçirilecek yapıları yürütür.Mapgeçerli bir işlev için karşılık gelen elemanları verilen vektörler...Mapbasit bir sarıcımapplygelmez 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.
Mapmapplyetrafında sarıcılapplymapplyözel bir durum- Bu nedenle
Maplapplybirç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"

başarı arasındaki fark nedir .() yapıl...
Gıt gıt am ve uygulamak arasındaki far...
Varchar ve nvarchar arasındaki fark ne...
HTML etiketleri <div> ve <spa...
Denetim arasındaki fark ve WPF DataTem...