我从来没有找到满意的答案来解决这个问题。假设我有一个函数:将列表参数传递给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