कार्यकुशल R कोड लिखना
Colin Gillespie
Jumping Rivers & Newcastle University
{{1}} के parallel वर्शन मौजूद हैं
apply() - parApply()sapply() - parSapply()lapply() - parLapply()sapply() एक for लूप लिखने का दूसरा तरीका है
लूप
for(i in 1:10)
x[i] <- simulate(i)
इसे ऐसे भी लिख सकते हैं
sapply(1:10, simulate)
हम वेक्टर के हर मान पर एक फंक्शन लगा रहे हैं
रेसिपी वही है!
parSapply() पर स्विच करेंplot(pokemon$Defense, pokemon$Attack)
abline(lm(pokemon$Attack ~ pokemon$Defense), col = 2)
cor(pokemon$Attack, pokemon$Defense)
0.437

आदर्श स्थिति में, हम population से दोबारा सैंपल लेते; पर ऐसा संभव नहीं
इसके बजाय, मान लेते हैं कि मूल सैंपल population का प्रतिनिधि है
bootstrap <- function(data_set) {
# Sample with replacement
s <- sample(1:nrow(data_set), replace = TRUE)
new_data <- data_set[s,]
# Calculate the correlation
cor(new_data$Attack, new_data$Defense)
}
# 100 independent bootstrap simulations
sapply(1:100, function(i) bootstrap(pokemon))
parSapply() पर स्वैप करेंlibrary("parallel")
no_of_cores <- 7
cl <- makeCluster(no_of_cores)
clusterExport(cl,
c("bootstrap", "pokemon"))
parSapply(cl, 1:100,
function(i) bootstrap(pokemon))
stopCluster(cl)

कार्यकुशल R कोड लिखना