Remplir un array avec une boucle

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Diane MANZON
Messages : 31
Enregistré le : 18 Juin 2018, 08:31

Remplir un array avec une boucle

Messagepar Diane MANZON » 07 Déc 2018, 15:34

Bonjour à tous,

Je n'arrive pas à remplir mon array comme il faut.
Je pars d'une matrice (data) et je voudrais générer 50 matrices de façon aléatoire.

Code : Tout sélectionner

data <- matrix(rnorm(56), nrow=14, ncol=4) #matrice de départ
B = 50 # nombre final de matrices
nb_alea = NULL
BS = array(numeric(), c(nrow(data), ncol(data), B)) #array qui va contenir toutes mes matrices

for (i in 1:B) {
  nb_alea=sample(nrow(data), 14, T) # je choisis aléatoirement avec remise les lignes de la nouvelle matrice
  BS = array(data[nb_alea,], c(nrow(data), ncol(data), B))
}


Seulement avec ce code, j'ai la même matrice 50 fois… Quelqu'un aurait une idée ?
Ensuite, je voudrais pouvoir utiliser mes matrices individuellement mais je ne trouve pas la commande qui permet de passer d'un array à une matrice…

Je vous remercie d'avance pour votre aide !
Cordialement,
Diane MANZON

Pierre-Yves Berrard
Messages : 524
Enregistré le : 12 Jan 2016, 23:30

Re: Remplir un array avec une boucle

Messagepar Pierre-Yves Berrard » 07 Déc 2018, 16:09

Bonjour,
Diane MANZON a écrit :Seulement avec ce code, j'ai la même matrice 50 fois… Quelqu'un aurait une idée ?

À première vue, je dirais que c'est parce que vous faites une boucle sur i et que i n'apparaît jamais à l'intérieur de la boucle.

Remplacer la dernière ligne par :

Code : Tout sélectionner

BS[ , , i] <- array(data[nb_alea,], c(nrow(data), ncol(data)))

Ça répond aussi à la deuxième question, il me semble.
PY

Diane MANZON
Messages : 31
Enregistré le : 18 Juin 2018, 08:31

Re: Remplir un array avec une boucle

Messagepar Diane MANZON » 10 Déc 2018, 08:13

Pierre-Yves Berrard a écrit :Bonjour,
À première vue, je dirais que c'est parce que vous faites une boucle sur i et que i n'apparaît jamais à l'intérieur de la boucle.
Remplacer la dernière ligne par :

Code : Tout sélectionner

BS[ , , i] <- array(data[nb_alea,], c(nrow(data), ncol(data)))

Ça répond aussi à la deuxième question, il me semble.


Bonjour,

Décidément, les boucles ce n'est pas mon truc!
Super merci beaucoup !!


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité