R中使用S4方法的非标准评估

时间:2016-05-17 13:16:59

标签: r s4

我正在尝试实现一个S4对象,该对象具有以与data.table类似的方式使用非标准求值的方法。

D <- data.table(x = 1:10, u = letters[1:10])
D[i = u == "a"] ## i is not evaluated in the global environment but later in the data.table package

对于调度唯一的S4方法,非标准评估似乎是可能的:

setGeneric("tfun", function(x, y) standardGeneric("tfun"))
setMethod("tfun", c("character", "ANY"), function(x, y) print(x))
tfun("A", o + z + blahblah())

但是当我添加一个派对第二个参数的方法时,我得到一个错误,因为R试图对它进行评估。

setMethod("tfun", c("integer", "vector"), function(x, y) print(x))
tfun("A", o + z + blahblah()) ## Fails

当重新实现&#34; [&#34;运营商。 我理解使用S3类是另一种选择。是否有更好的解决方法仍然使用S4?

0 个答案:

没有答案