小编DoD*_*Dx9的帖子

使用另一个函数中的“subset”函数对自定义 S4 类进行子集化

我正在尝试为我的自定义 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)

methods environment r subset r-s4

5
推荐指数
1
解决办法
143
查看次数

标签 统计

environment ×1

methods ×1

r ×1

r-s4 ×1

subset ×1