Si vous souhaitez enregistrer l'espace de travail-R ont un regard sur ?save
ou ?save.image
(utilisez le premier à enregistrer un sous-ensemble de vos objets, la seconde pour enregistrer votre espace de travail dans toto).
Votre code édité devrait ressembler
for(i in 1:100)
{
for(j in 1:100)
R[i,j]=gcm(i,j)
save.image(file="path/to/your/file.RData")
}
A propos de votre code de prendre beaucoup de temps, je vous conseille d'essayer la fonction ?apply
qui
Renvoie un vecteur ou un tableau ou d'une liste des valeurs obtenues en appliquant une fonction à des marges d'un tableau ou d'une matrice
Vous voulez gmc
à exécuter pour-chaque cellule, ce qui signifie que vous voulez appliquer pour chaque combinaison de lignes et de colonnes coordonnées
R = 100; # number of rows
C = 100; # number of columns
M = expand.grid(1:R, 1:C); # Cartesian product of the coordinates
# each row of M contains the indexes of one of R's cells
# head(M); # just to see it
# To use apply we need gmc to take into account one variable only (that' not entirely true, if you want to know how it really works have a look how at ?apply)
# thus I create a function which takes into account one row of M and tells gmc the first cell is the row index, the second cell is the column index
gmcWrapper = function(x) { return(gmc(x[1], x[2])); }
# run apply which will return a vector containing *all* the evaluated expressions
R = apply(M, 1, gmcWrapper);
# re-shape R into a matrix
R = matrix(R, nrow=R, ncol=C);
Si le apply
-Approche est à nouveau essayer lent compte tenu de la snowfall
paquet qui vous permettra de suivre l'approche apply
en utilisant l'informatique parallèle. Une introduction à l'utilisation snowfall
se trouve in this pdf, regardez la page 5
et 6
en particulier