[Rd] parRapply and parCapply return a list in corner cases

Simone Giannerini @g|@nner|n| @end|ng |rom gm@||@com
Mon May 18 17:23:57 CEST 2020


According to ?parCapply:

parRapply and parCapply always return a vector.

This appears not to be the case in the following minimal reproducible example:

>     library(parallel)
>     nslaves <- 2
>     cl      <- makeCluster(nslaves)
>     X       <- matrix(2,nrow=3,ncol=4)
>     X       <- rbind(c(1,1,0,1),X)
>     tv <- parCapply(cl,X,FUN=function(x){
+         ind <- x[1]
+         y   <- x[-1]
+         if(ind==1){
+             r1 <- sum(y)
+         }else{
+             r1 <- logical(0)
+         }
+         return(unlist(as.numeric(c(ind,r1))))
+     })
> tv
[[1]]
[1] 1

[[2]]
[1] 6

[[3]]
[1] 1

[[4]]
[1] 6

[[5]]
[1] 0

[[6]]
[1] 1 6

> class(tv)
[1] "list"
> sessionInfo()
R version 4.0.0 (2020-04-24)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=Italian_Italy.1252  LC_CTYPE=Italian_Italy.1252
[3] LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C
[5] LC_TIME=Italian_Italy.1252

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets
methods   base

loaded via a namespace (and not attached):
[1] compiler_4.0.0

-- 
_________________________________________________________________

PHILOSOPHICAL TRANSACTIONS OF THE ROYAL SOCIETY A
Theme issue ‘DNA as information’
edited by Julyan H.E. Cartwright, Simone Giannerini and Diego L. González
_________________________________________________________________

Simone Giannerini
Dipartimento di Scienze Statistiche "Paolo Fortunati"
Universita' di Bologna
Via delle belle arti 41 - 40126  Bologna,  ITALY
Tel: +39 051 2098262  Fax: +39 051 232153
https://www.unibo.it/sitoweb/simone.giannerini/



More information about the R-devel mailing list