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

时间:2012-03-27 18:54:48

标签: r parallel-processing default plyr

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

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

2 个答案:

答案 0 :(得分:9)

library(Defaults)
setDefaults(llply, .parallel=TRUE)

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

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

答案 1 :(得分: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(v0.2.0.9000)于2019-03-22创建。