4
如果只有一個S4泛型函數的命名參數的方法定義,如預期substitute()
作品:替代()在S4
> setGeneric("fS4", function(x, ...) standardGeneric("fS4"))
> setMethod("fS4", signature("numeric"),
+ function(x, ...) deparse(substitute(x))
+)
[1] "fS4"
> fS4(iris[,1])
[1] "iris[, 1]"
但是,如果加上一個額外的命名參數傳遞給方法的定義, substitute()
不再返回正確的說法,因爲它是通過:
> setMethod("fS4", signature("numeric"),
+ function(x, y, ...) deparse(substitute(x))
+)
[1] "fS4"
> fS4(iris[,1])
[1] "x"
上爲什麼出現這種情況,最重要的是,如何將其周圍工作任何線索?