IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Produit de lignes aléatoires d'une matrice


Sujet :

R

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Points : 11
    Points
    11
    Par défaut Produit de lignes aléatoires d'une matrice
    Bonjour à tous,

    Sans boucle et sans package,

    Je voudrais retourner N produits de M lignes choisis aléatoirement d'une matrice A :

    Pour l'instant, j'ai réussi avec une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    B <- matrix(NA, ncol = ncol(A), nrow = 0) 
    for (i in 1 : N) B <- rbind(B, apply(A[sample(1 : nrow(A), M, replace = T), ], 2, prod))
    Avez-vous une solution ?

    Merci d'avance !

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Re salut,

    Honnetement tu ne pourras pas beaucoup optimiser ce code la.
    Tout simplement parce que si tu enleves la boucle, ce sera pour ajouter une fonction de la gamme des apply( aggregate, tapply, sapply...) qui s'appliquera sur les marges 1:N. (donc revient un peu au même que la boucle...).

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    l<-tapply(rep(M,N),1:N,function(x){A[sample(1 : nrow(A), M, replace = T), ]})
    t(sapply(l,apply,2,prod))
    Qui fait la même chose que ton code.
    La boucle est implicite.

    Il doit quand même y avoir un petit gain de temps car je ne fais pas de rbind à chaque étape. (le rbind obligeant à recharger le tableau à chaque incrémentation, contrairement à la liste qui se contente d'ajouter un element sans recharger tout ce qu'il y a avant)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Création de lignes à partir d'une matrice
    Par nevpen dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/04/2014, 14h07
  2. [Débutant] Supprimer des lignes particulières d'une matrice
    Par tawfiknejeh dans le forum MATLAB
    Réponses: 3
    Dernier message: 07/02/2013, 22h00
  3. [TPW] Remplissage aléatoire d'une matrice avec une condition
    Par abdou monta dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 24/11/2012, 16h54
  4. parcours aléatoire d'une matrice d'images
    Par charlesz dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/05/2010, 11h10
  5. Parcours aléatoire d'une matrice
    Par Giansolo dans le forum MATLAB
    Réponses: 4
    Dernier message: 08/11/2009, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo