rrstudiomclapply

Printing from mclapply in R Studio


I am using mclapply from within RStudio and would like to have an output to the console from each process but this seems to be suppressed somehow (as mentioned for example here: Is mclapply guaranteed to return its results in order?). How could I get R Studio to print something like

x <- mclapply(1:20, function(i) cat(i, "\n"))

to the console?

I've tried print(), cat(), write() but they all seem not to work. I also tried to set mc.silent = FALSE explicitly without an effect.


Solution

  • Here's a workaround which uses shell echo to print to R console in Rstudio:

    #' Function which prints a message using shell echo; useful for printing messages from inside mclapply when running in Rstudio
    message_parallel <- function(...){
      system(sprintf('echo "\n%s\n"', paste0(..., collapse="")))
    }