’un S3 gönderimi Belirli bir sınıf için rbind
yöntemini yazmayı deniyorum.S3 `rbind` ve` cbind`
> methods("rbind")
[1] rbind.character rbind.data.frame rbind.rootogram* rbind.zoo*
see '?methods' for accessing help and source code
:
rbind.character <- function(...) {
do.call("paste", list(...))
}
Bu fonksiyonu girdikten sonra, ben görünüşte o R bildiği geçerli bir yöntem olduğunu teyit edebiliriz: İşte (en azından benim için) çalışmayan bir basit bir örnek
> rbind("abc", "xyz")
[,1]
[1,] "abc"
[2,] "xyz"
> #### compared with ####
> rbind.character("abc", "xyz")
[1] "abc xyz"
yardım sayfası aşağıdaki gibi sevk içten gerçekleştirilir söylüyor: onu kullanmaya çalışırsanız
Ancak, tanınmayan
- Her bir değişken için sınıf özelliklerinden olası sınıf üyelikleri listesini alırız.
- Geçerli bir yönteminin olup olmadığını görmek için sırayla her sınıfı denetleriz.
- Geçerli bir yöntem bulursak, önceki argümanlar için belirlenen herhangi bir yöntemin ile aynı olduğundan emin oluruz. Eğer aynı ise, biz biz varız, aksi takdirde hemen varsayılan kodun içine düşüyoruz.
rbind("abc", "xyz")
ile, tüm bu ölçütlerin karşılandığına inanıyorum. Ne verir ve nasıl düzeltebilirim?
Bkz. '? InternalMethods' ve ayrıca, x =" abc "gibi bir şey; y = "xyz"; is.object (x) || is.object (y); rbind (x, y); attr (x, "class") = "karakter"; attr (y, "sınıf") = "karakter"; is.object (x) || is.object (y); rbind (x, y) ' –