我可以告诉R plyr包默认并行工作吗?

问题描述 投票:5回答:2

我正在做一些像这样的分析:

library(plyr)
input.files <- c("file1.txt", "file2.txt", "file3.txt")
input.data <- llply(input.files, load.file, .parallel=TRUE)
step.one.results <- llply(input.data, step.one, .parallel=TRUE)
step.two.results <- llply(step.one.results, step.two, .parallel=TRUE)
...
step.N.results <- llply(`step.N-1.results`, step.N, .parallel=TRUE)
...

是否有任何方法可以使所有plyr函数默认并行,所以我不必总是为每一步指定.parallel=TRUE

r parallel-processing default plyr
2个回答
9
投票
library(Defaults)
setDefaults(llply, .parallel=TRUE)

您必须在要更改默认形式的每个函数上使用setDefaults。如果你愿意,你可以把它放在你的.Rprofile中。

你也可以直接搞乱形式。例如formals(llply)$.parallel <- TRUE应该工作。


0
投票

从我对另一个question的回答:

由于CRAN不再提供Defaults包,您可以使用default

举个例子:

x <- list(a = 1, b = 2, c = 3)
default::default(unlist) <- list(use.names = FALSE)
unlist(x)
#> [1] 1 2 3

unlist <- default::reset_default(unlist)
unlist(x)
#> a b c 
#> 1 2 3

reprex package创建于2019-03-22(v0.2.0.9000)。

© www.soinside.com 2019 - 2024. All rights reserved.