Ci scusiamo per il titolo, non so in che altro modo di esprimere questa domanda.R S4 setMethod '[' distinguere gli argomenti mancanti?
Se voglio creare setMethod
in una classe, come faccio a distinguere tra i casi simili di mat[i,]
e mat[i]
?
So per l'ex posso usare:
setMethod("[",
signature(x = "foo", j = "missing", drop = "missing"),
function(x,i,j,drop) return(myFunc(x,i))
)
Come posso impostare un metodo per distinguere quest'ultima in cui non vorrei che per selezionare le righe, ma come elementi nella classe base
matrix
?
Guardando la documentazione ?[
mi aspettavo qualcosa di simile alla seguente dovrebbe funzionare:
setMethod("[",
signature(x = "foo", i = "numeric"),
function(x,i,j,drop) return(myFunc(x,i))
)
ma è in conflitto con i metodi definiti in precedenza in cui j
e drop
mancano.
L'idea è la stessa di
mat <- matrix(seq(9), 3, 3)
mat[c(1,3),]
1 4 7
3 6 9
mat[c(1,3)]
[1] 1 3
Questo sembra fare il trucco – cdeterman