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 :

Optimisation de programme


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Optimisation de programme
    Bonjour à tous,

    C'est la première fois que je poste sur un forum relatif aux maths ou info mais il y a un début à tout. (je suis vierge mouhaha :p)
    J'expose mon problème:
    J'ai une matrice de dimension 1461*470 et j'aimerais couper chaque colonne à la ligne de la première pour avoir à la fin une matrice (ou vecteur du coup) de taille 1461*470=686670 lignes et 1 colonne.
    Si ce n'est pas clair:
    a b
    c d
    Et j'aimerais:
    a
    c
    b
    d

    J'ai bien sûr réussi à le faire mais seulement à l'aide d'une boucle, et donc cela prend un temps de calcul assez long (10/20s). Quelqu'un aurait-il une piste pour accélérer le temps de calcul, peut-être en utilisant des fonctions déjà créées ou en utilisant la vectorisation (apply, etc...) ?

    Voici ma boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    FichierTXT=NULL
     BORDEL=as.numeric(dim(Donnees)[2])
      for (i in 1:BORDEL){
        TOUS=as.matrix(Donnees[,i])
        FichierTXT=rbind(FichierTXT,TOUS)
      }

    J'aimerais accélérer le temps de calcul car on compte réaliser 7200 simulations et 7200*20s=144000s = 40h.

    Merci d'avance,

    Cordialement.

  2. #2
    Membre régulier Avatar de Yoan73
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 21
    Points : 75
    Points
    75
    Par défaut
    Tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mat = matrix(data = c(1, 2, 3, 4, 5, 6), nrow = 3)
    as.vector(mat)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Yoan73 Voir le message
    Tu peux faire ça :

    mat = matrix(data = c(1, 2, 3, 4, 5, 6), nrow = 3)
    as.vector(mat)


    Ok, merci bien, je ne pensais pas qu'il y avait une solution si évidente que ça :p

    Bonne continuation.

  4. #4
    Membre régulier Avatar de Yoan73
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 21
    Points : 75
    Points
    75
    Par défaut
    De rien,

    généralement il existe pas mal de fonctions de manipulation de table avec R sans à avoir l'obligation de passer par des boucles.

    Utilises les boucles qu'en cas d'extrême nécessité !

    Bien à toi,

    Yoan

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

Discussions similaires

  1. Optimiser un programme VB
    Par Eausport dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 05/06/2009, 15h56
  2. [Macro] optimisation de programmes SAS
    Par bar_79 dans le forum Macro
    Réponses: 4
    Dernier message: 25/11/2008, 15h51
  3. Optimiser des programmes .net
    Par TSalm dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 06/03/2008, 12h19
  4. Optimiser un programme java
    Par piteon dans le forum Général Java
    Réponses: 27
    Dernier message: 05/08/2007, 20h01
  5. Réponses: 9
    Dernier message: 07/11/2006, 14h12

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