Je veux paralléliser le code ci-dessous dans R. Il s'agit d'une boucle imbriquée.paralléliser une boucle imbriquée dans R
for (i in 1:nrow(my_dataset_preprocessed)){
for (j in 1:ncol(my_dataset_preprocessed)){
my_dataset_preprocessed[i,j] = min(my_dataset_preprocessed[i,j], 0.1)
}
}
Je suis en train le code ci-dessous à l'aide doParallel
library(foreach)
library(doParallel)
registerDoParallel(detectCores())
clusterExport(cl, "my_dataset")
threshold_par <- function (X) {
co <- foreach(i=1:nrow(X)) %:%
foreach (j=1:ncol(X)) %dopar% {
co = min(X[i,j], 0.1)
}
matrix(unlist(co), ncol=ncol(X))
}
system.time(threshold_par(my_dataset))
mais je reçois l'erreur suivante:
Error in { : task 1 failed - "invalid 'type' (list) of argument"
Y at-il une meilleure façon de paralléliser ce code (peuvent utiliser parLapply)? Si non, comment puis-je corriger le code ci-dessus?
Je pense que 'lapply (my_dataset_preprocessed, fonction (x) pmin (x, 0,1))' serait plus simple à faire. – Benjamin
Si vos données sont une matrice, cela devrait fonctionner: 'my_dataset [my_dataset> 0.1] <- 0.1' – emilliman5