Search code examples
rparallel-processingdefaultplyr

Can I tell the R plyr package to work in parallel by default?


I'm doing some analysis something like this:

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)
...

Is there any way to make all the plyr functions parallel by default, so I don't always have to specify .parallel=TRUE for each step?


Solution

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

    You'd have to setDefaults on every function for which you want to change the default formals. You can put this in your .Rprofile if you like.

    You can also mess with the formals directly. e.g. formals(llply)$.parallel <- TRUE should work.