私は、この質問に対する満足のいく答えを見つけたことがありません。関数があると仮定します:
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
ピンチでは、別のリストを (事実上 と を組み合わせaてb) 作成することもできます。ここで、各リスト項目自体はdata.frameと に対応するポイント パターン オブジェクトを含む長さ 2 のリストです。ただし、これにより、何千もの冗長コピーが発生します (また、クラスターでこの操作を実行する効率が大幅に低下します)。
更新mclapply:これをクラスターで実行するように変更する予定です。でそれを行うことはできませんmapply(がある場合を除くmcmapply)。