Могу ли я указать, что пакет R plyr будет работать параллельно по умолчанию? - PullRequest
5 голосов
/ 27 марта 2012

Я делаю некоторый анализ примерно так:

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 ]

9 голосов
/ 27 марта 2012
library(Defaults)
setDefaults(llply, .parallel=TRUE)

Вам потребуется setDefaults для каждой функции, для которой вы хотите изменить формальные значения по умолчанию. Вы можете положить это в свой .Rprofile, если хотите.

Вы также можете напрямую связываться с формальностями. например formals(llply)$.parallel <- TRUE должно работать.

0 голосов
/ 22 марта 2019

Из моего ответа на другой вопрос :

Поскольку пакет По умолчанию больше не доступен в CRAN, вы можете использовать по умолчанию .

Как пример:

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

Создано в 2019-03-22 пакетом Представ (v0.2.0.9000).

...