Diyelim ki testClass
adında bir S4 sınıfına sahibim. İçerik, bu sorunun amacıyla alakasızdır, ancak sayısal bir değer içermesini sağlayalım.Nesnenin tersini almak için S4 yöntemi nasıl tanımlanır?
#' An S4 class that stores a list.
#' @export
setClass("testClass",
representation(a="numeric"))
Nesnenin karşısını almak gibi çalışan bir yöntem tanımlamak istiyorum. Örneğin:
vec <- rnorm(10)
-vec
bu ilk argüman eksik olan bir Arith
yöntem bildirerek olacağını düşündük.
#' @export
setMethod("Arith", c(e1="missing", e2="testClass"),
function(e1, e2)
{
op = .Generic[[1]]
switch(op,
`-` = return([email protected])
)
}
)
Ancak, aşağıdaki hatayı alıyorum yöntemi uygulamak çalıştığınızda:
tc <- new("testClass", a=2)
-tc
Error in -tc : invalid argument to unary operator
Nice demo. Sadece meraktan dolayı, bu .Generic'in nereden geldiğini (yani değeri nerede bulunur)? –
'? .Generic', bazı kaydırmalardan sonra üretir: '' .Generic ', genel işlevi adlandıran bir uzunluk-bir karakter vektörüdür.' – thothal
Eğer setMethod (" - ", c (e1 =" testClass) denerseniz, herhangi bir fark var mı? ", e2 =" kayıp "), işlev (e1, e2) -e1 @ a)'? – nicola