Dear Rui, Thanks a lot. I've not yet ran the function. I hoped that I make sure of it before. Therefore I can't print r. Thanks anyways!
Yours sincerely, Akshay M Kulkarni ________________________________ From: Rui Barradas <ruipbarra...@sapo.pt> Sent: Sunday, December 12, 2021 10:42 PM To: akshay kulkarni <akshay...@hotmail.com>; R help Mailing list <r-help@r-project.org> Subject: Re: [R] help with parellel processing and RSelenium Hello, Inline. �s 16:43 de 12/12/21, akshay kulkarni escreveu: > dear members, > I am a stock trader based in INDIA using R for my > research. I have two questions: > > > 1. I want to send the same function with different arguments to different > cores. This link in SO > https://stackoverflow.com/questions/25045998/send-function-calls-with-different-arguments-to-different-processors-in-r-using > 2. gives the following solution: > > library(parallel) > > cl <- makeCluster(4) > clusterExport(cl, "foo") > cores <- seq_along(cl) > r <- clusterApply(cl[cores], cores, function(core) { > if (core == 1) { > foo(5, 4, 1/2, 3, "a") > } else if (core == 2) { > foo(5, 3, 1/3, 1, "b") > } else if (core == 3) { > foo(5, 4, 1/4, 1, "c") > } else if (core == 4) { > foo(5, 2, 1/5, 0, "d") > }}) > > My question is: what is the structure of the output "r" in the above code? I > think it is a list with r[[1]] = output of foo(5,4,1/2,3,"a"),r[[2]] = output > of foo(5,1/3,1,"b") > > and so on. AM I right? Yes, you are right. Why don't you try and print r[[1]]? Anyway, I would put the parameters in a list and pass them to the function following the below lines. library(parallel) foo <- function(pars){ x <- pars$x y <- pars$y z <- pars$z w <- pars$w alpha <- pars$alpha res <- (x + y)*z^w list(result = res, message = alpha) } params <- list( list(x=5, y=4, z=1/2, w=3, alpha="a"), list(x=5, y=3, z=1/3, w=1, alpha="b"), list(x=5, y=4, z=1/4, w=1, alpha="c"), list(x=5, y=2, z=1/5, w=0, alpha="d") ) cl <- makeCluster(4) clusterExport(cl, "foo") clusterExport(cl, "params") cores <- seq_along(cl) r <- clusterApply(cl[cores], cores, function(core) { foo(params[[core]]) }) stopCluster(cl) do.call(rbind.data.frame, r) Hope this helps, Rui Barradas > > 1. > > I am using RSelenium to scrape a website. Javascript has a document.ready > function which ensures that any JS code is run only after the whole document > is > > * > > loaded. Is there a similar function in RSelenium? Or will the execution of > the next expression takes place only after the whole page is loaded (with the > > * > > "navigate" method of RSelenium)? > > Thanking you, > > Yours sincerely, > > AKSHAY M KULKARNI > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.