重複の可能性:
S4 クラス: スロットごとに複数のタイプ
初めての R パッケージを作ろうとしています。データとデータを処理するいくつかのメソッドを含む S4 クラス「テスト」を作成する予定です。私の場合、データの処理はマルチスレッドによって改善できます。テストparLapply()
しましたが、パフォーマンスが向上します。
問題は、私が電話したくないということです:
cl <- makeCluster(N)
parLapply(cl, x, FUN, ...)
stopCluster(cl)
並列にしたい各メソッドで。これは、エレガントではなく、スレッドのチームの作成 (および破棄) の繰り返しにコストがかかるためです。
cluster
したがって、クラス「テスト」内に(単に)オブジェクトを持つことを考えていました。次に、たとえば、「テスト」オブジェクト「o」を作成し、「テスト」のメソッドを呼び出すことができますsetNumbrOfThreads(o) <- 4
。
ただし、実装に問題があります。?makeCluster()
戻り値は '''An object of class '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 クラスを作成するにはどうすればよいですか?
ありがとうございました、