我试图让我的第一个R包。 我打算创建一个包含数据和一些处理数据的方法的S4类“测试”。 在我的情况下,数据的处理可以通过多线程来改进。 我测试了parLapply()
,它提高了性能。
的问题是,我不想叫:
cl <- makeCluster(N)
parLapply(cl, x, FUN, ...)
stopCluster(cl)
在我要让每个平行方法
。这是因为它不够优雅,我认为,线程成本团队的重复创建(和破坏)。
因此,我正在考虑(简单地)在我的课程“test”中有一个cluster
对象。 然后,我可以,例如,做一个“测试”对象“o”,并调用“测试”setNumbrOfThreads(o) <- 4
的方法。
但是,我遇到了实施麻烦。由于?makeCluster()
状态下的返回值为“” C(‘SOCKcluster’,‘簇’)“‘”’类的对象”,我曾尝试:
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
)
)
ř抱怨element 3 of the representation was not a single character string
。 所以我尝试没有更多的成功:cluster = "cluster"
或cluster = "SOCKcluster"
(代表)。
我的问题是:
我如何可以创建一个S4级与C级(“SOCKcluster”,“集群”)的一个成员对象?
谢谢
@BrandonBertelsen谢谢,我会尝试并更新。我在R和OOP方面很难。 –
布兰登问题的解决方案为我工作。这确实是重复的。 –