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)
Si vous allez utiliser pour des boucles vous avez besoin d'apprendre que la cession est nécessaire à l'intérieur de la boucle. Sinon rien de durable "passe".

OriginalL'auteur Philip Ueno | 2012-03-13