Mam 2 skrypty, które robią dokładnie to samo.
Ale jeden skrypt tworzy 3 pliki RData o wadze 82,7 KB, a drugi skrypt tworzy 3 pliki RData o wadze 120 KB.
pierwszy nie jest równoległy:
library("plyr")
ddply(.data = iris,
.variables = "Species",
##.parallel=TRUE,##Without parallel
.fun = function(SpeciesData){
#Create Simple Model -------------------------------------------------------------
Model <- lm(formula = "Sepal.Length~Sepal.Width+Petal.Length+Petal.Width",data = SpeciesData)
#Save The Model -------------------------------------------------------------
save(Model,
compress = FALSE,
file = gsub(x = "Species.RData",
pattern = "Species",
replacement = unique(SpeciesData$Species)))
})
Drugi jest równoległy:
library("plyr")
doSNOW::registerDoSNOW(cl<-snow::makeCluster(3))
ddply(.data = iris,
.variables = "Species",
.parallel=TRUE,##With parallel
.fun = function(SpeciesData){
#Create Simple Model -------------------------------------------------------------
Model <- lm(formula = "Sepal.Length~Sepal.Width+Petal.Length+Petal.Width",data = SpeciesData)
#Save The Model -------------------------------------------------------------
save(Model,
compress = FALSE,
file = gsub(x = "Species.RData",
pattern = "Species",
replacement = unique(SpeciesData$Species)))
})
snow::stopCluster(cl)
drugi skrypt tworzy pliki ważące o 42% więcej.
Jak mogę zapisywać pliki równolegle bez automatycznego zwiększania rozmiaru pliku?
r lang lock file
a po 5 sekundach znajdziesz żądany pakiet cran.r-project.org/web/packages/filelock/filelock.pdf