1

私は、この質問に対する満足のいく答えを見つけたことがありません。関数があると仮定します:

foo <- function(a,b,c) {
...
}

adata.frame多くのオブジェクトを含むリストです

b特別なクラスのデータを含むリストです (pppライブラリのクラスspatstatが役立つ場合)。

cは整数です。

そして、その関数を介してリストをプッシュしたい:

result <- llply(a, foo, b,c) 

のリスト項目の名前は、 listbの data.frames の列「type」に対応していますa。したがって、関数内fooですぐに実行できます。

id <- which(names(b) == unique(a$type))
baseline_pattern <- b[[id]]

b の基礎となる各空間パターンを a の正しい data.frame と一致させます。b には約 10 個のアイテムがあり、a には 1000 個のアイテムがあります。残念ながら、llply(または一般的には)引数リストの場合でも、一度にlapply1 つのリスト項目をプッシュしようとし、正しいリスト項目と正しいデータ フレームを一致させる 2 行のコードが失敗するため、これは機能しません。リスト全体。これを回避する方法はありますか?abbb

ピンチでは、別のリストを (事実上 と を組み合わせab) 作成することもできます。ここで、各リスト項目自体はdata.frameと に対応するポイント パターン オブジェクトを含む長さ 2 のリストです。ただし、これにより、何千もの冗長コピーが発生します (また、クラスターでこの操作を実行する効率が大幅に低下します)。

更新mclapply:これをクラスターで実行するように変更する予定です。でそれを行うことはできませんmapply(がある場合を除くmcmapply)。

4

1 に答える 1

1

mapplyまだ完全には起きていませんが、を使いたいようですねMoreArgs=list(b, c)

于 2012-04-05T01:01:32.717 に答える