我正在尝试为我的自定义 S4 类定义一个subset方法。虽然当我直接向 提供子集标准时subset,子集按预期工作,但每当我在另一个函数中调用该方法时,该方法都会失败,其中子集标准从该函数传递到subset该函数。
S4 类myClass包含一个data.frame:
# Define class
setClass("myClass", slots = c(data = "data.frame"))
# Initiate a myClass object
dat <- new("myClass", data = data.frame(Letter = c("A", "A", "B"), Number = c(1, 2, 3)))
Run Code Online (Sandbox Code Playgroud)
为了能够根据data.frameslot 中的内容对类进行子集化data,我定义了以下subset方法:
setMethod("subset", signature(x = "myClass"), function(x, ...) {
x@data <- subset(x@data, ...)
return(x)
})
Run Code Online (Sandbox Code Playgroud)
该方法在调用时按预期工作,如下所示:
# Assume we only want to retain entries containing the letter "A"
whichletter …Run Code Online (Sandbox Code Playgroud)