J'essaie d'exécuter une boucle dans R pour la détection de chaîne sur plusieurs cœurs en utilisant foreach mais je vois qu'elle ne fonctionne que sur un seul noyau et je n'ai pas pu l'amener à fonctionner sur plusieurs cœurs noyaux.Comment utiliser R str_detect sur plusieurs cœurs
library("parallel")
library("foreach")
library("doParallel")
#How to detect how many cores are on the server
detectCores()
cl <- makeCluster(3)
registerDoParallel(cl)
x<-c("Hello My Name is", "Happy Birthday", "Hi How are you today? My Name is walley", "Nice to meet you", "Best friends")
y<-c("Hello", "Birthday", "Hi", "Nice", "Best friends")
foreach(i = 1:length(y)) %dopar%{
print(i)
if (sum(str_detect(x,paste("\\b",as.character(y),"\\b", sep=""))) > 0){
str_replace(x[i], as.character(y[which(str_detect(x[i],paste("\\b",as.character(y),"\\b", sep="")) == TRUE)]), "")
}
}
write.csv(mycatalog, "Matching.csv")
getDoParWorkers()
stopCluster(cl)
Ce n'est pas reproductible. Veuillez résumer votre exemple à un petit exemple, "reproductible". –
[Comment faire un grand exemple R reproductible?] (Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – zx8754
Ok c'est le nouveau modifié et plus facile code. J'ai créé deux vecteurs x et y et mon idée est de faire la correspondance de chaque élément de y s'il est rencontré dans x et de remplacer cet élément. – Micmic