我從來沒有找到滿意的答案來解決這個問題。假設我有一個函數:將列表參數傳遞給llply
foo <- function(a,b,c) {
...
}
a
是包含許多data.frame
對象
b
一個列表(從庫spatstat
ppp
類,是否可以幫助任何)含有一類特殊的數據列表。
c
是一個整數。
,我想通過這個函數推列表:
result <- llply(a, foo, b,c)
在b
的列表項目名稱對應於data.frames列「類型」列表中a
。因此,內部功能foo
我可以很快的做:
id <- which(names(b) == unique(a$type))
baseline_pattern <- b[[id]]
在B中的每個潛在的空間格局,在一個合適的data.frame匹配。 a中有大約10件b和1000件物品。不幸的是,這是行不通的,因爲llply
(或一般lapply
)試圖推動一個列表項目a
時間,即使對於參數列表b
和兩行代碼匹配正確的列表項b
與正確的數據幀失敗,因爲功能不再具有整個列表b
。有沒有辦法解決?
在緊要關頭,我可以創建另一列表(有效地組合a
和b
),其中每個列表項本身是用含有data.frame
和對應點圖案對象長度2的列表。但是這會導致數千個冗餘副本(並且使羣集上的這個操作效率低得多)。
UPDATE:我打算把它變成一個mclapply
在集羣上運行它。我不能這樣做mapply
(除非有mcmapply
)。
事實證明,在R 2.15.0中有一個'mcmapply'。升級時間...? – 2012-04-10 02:00:19