可能重复:
S4 类:每个插槽多个类型
我正在尝试制作我的第一个 R 包。我计划创建一个 S4 类“测试”,其中包含数据和一些处理数据的方法。就我而言,可以通过多线程来改进数据的处理。我已经测试过parLapply()
了,它提高了性能。
问题是我不想打电话:
cl <- makeCluster(N)
parLapply(cl, x, FUN, ...)
stopCluster(cl)
在我想要并行的每种方法中。这是因为它不优雅,而且我认为是线程成本团队的重复创建(和破坏)。
因此,我正在考虑(只是)cluster
在我的班级“测试”中有一个对象。然后我可以,例如,制作一个“测试”对象“o”并调用一个“测试”方法setNumbrOfThreads(o) <- 4
。
但是,我在实施方面遇到了麻烦。由于?makeCluster()
声明返回值为'''类'c(“SOCKcluster”,“cluster”)'''的对象,我尝试过:
setClass("test",
representation(
data = "list",
nThreads = "numeric",
cluster = c("SOCKcluster", "cluster") #This seems incorrect
),
prototype(
data = NULL,
nThreads = 1,
cluster = makeCluster(1) # "cluster = NULL" does not help
)
)
R 抱怨说element 3 of the representation was not a single character string
。所以我尝试了没有更多的成功:cluster = "cluster"
或cluster = "SOCKcluster"
(代表)。
我的问题是:
如何使用类 c("SOCKcluster", "cluster") 的成员对象创建 S4 类?
谢谢,