Boucle dans R: comment enregistrer les sorties?
Je suis en train d'enregistrer les données à partir d'une boucle de logique tests.
Donc, j'ai les données suivantes:
T1 <- matrix(seq(from=100000, to=6600000,length.out=676),26,26) # a matrix of 26X26 - here with illustrive values
minmax <- seq(from=1,to=49,by=1) # creates a sequence
Fstep <- 6569141.82/minmax # define a vector from 0 to 6569141.82 with 49 divisions
F <- rev(round(Fstep,0)) # round the vector values and re order them
F
J'ai géré la boucle suivante
for (i in 1:49) {
print(T1 > F[i]) # I used print to see the results in the screen
}
Cette boucle me renvoie 49 matrices rempli avec les valeurs logiques (Vrai ou faux). Chaque matrice est la comparaison de T1 par rapport à chacune des 49 positions F[i] F[1], ...., F[49])
J'ai besoin d'avoir des valeurs dans les matrices pour plus d'aide que les matrices d'adjacence pour le réseau de parcelles. Cependant, quand je ne peux pas ni affecter ces valeurs logiques à une matrice, ni de les enregistrer au format csv valeurs à l'aide "de l'écriture.la matrice".
Donc, j'ai besoin d'avoir 49 - matrices "W" remplis avec des valeurs logiques (T ou F). J'ai déjà eu ces valeurs par la boucle ci-dessus, mais je ne peux pas le faire comme un objet ou comme la collection de csv. les fichiers.
J'ai essayé
W<-matrix(0,26,26) #create an empty matrix to assign the logical arguments
for (i in 1:49){
W[i] <- T1>F[i] # I used print to see the results in the screen
}
qui renvoie le message d'avertissement suivant
Warning messages:
1: In W[i] <- (T1 > F[i]) :
number of items to replace is not a multiple of replacement length
J'ai aussi essayé un autre cadre dans lequel toutes les matrices j'comparer les mêmes dimensions.
create.M <- function(F){ # a function to transform each position F[i] into a 26X26 matrix
for (i in 1:49) {
matrix(F[i],26,26)
}
}
Loop.T1 <- function(T1){ # a function to replicate T1(49 times)
for ( i in 1:49) {
T1
}
}
et comparé les deux sorties
Loop.T1(T1)>create.M(F)
qui renvoie
logical(0)
OriginalL'auteur Philip Ueno | 2012-03-13
Vous devez vous connecter pour publier un commentaire.
Stocker chaque matrice booléenne comme un élément dans une liste:
OriginalL'auteur joran
Une autre façon de faire ce que joran suggère est d'utiliser l'appliquer famille de fonctions.
Cela donne la même chose que joran est
result
, une liste où chaque élément correspond à une des valeurs deF
et cet élément est un 26x26 logique de la matrice.Une autre alternative est de stocker les résultats dans les trois dimensions logique de la matrice (49*26*26 où chaque tranche correspond à une des valeurs de
F
.dont la structure est
OriginalL'auteur Brian Diggs