Bonjour,

Je voudrais savoir comment pourrais-je dans un programme parallélisé avec foreach() %dopar% faire en sorte que chaque processus écrivent dans un même fichier.
J'ai essayé plein de méthodes mais aucune ne fait vraiment ce que je veux.
( Je veux ouvrir une fois la connexion vers le fichier puis la fermer à la fin alors qu'avec write.table() il ouvre autant de fois qu'il doit écrire quelque chose )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
path_file <- "path"
cl <- makeCluster(3)
registerDoParallel(cl)
 
# fileConn  <- file(path_file,open = "a")
# lock <-tempfile()
# locked <- flock::lock(lock)
 
foreach(i = 1:103) %dopar%  #do
{
  # locked <- flock::lock(lock, exclusive = T)
  phrase <- paste("hello","world", i,"\n")
  cat(phrase, file = path_file, append=TRUE)
  # flock::unlock(locked)
}
# close(fileConn)
parallel::stopCluster(cl)