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 :

Matrice de DataFrames?


Sujet :

R

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut Matrice de DataFrames?
    Bonjour,

    Je suis relativement nouveau dans le monde de R et malgré toutes mes recherches, je ne trouve pas de réponse à mon interrogation :

    Est-il possible de créer des matrices de dataframes?
    Ou éventuellement, existe-t-il un moyen de créer des tableaux de données à N dimensions?


    Vous allez sans doute me demander pourquoi je veux faire ça donc voilà une explication rapide de mes besoins :
    Je cherche à comparer des résultats de simulations réalisées en faisant varier 2 paramètres
    Pour chaque combinaison de ces 2 paramètres, je dois réaliser plusieurs répétitions.

    Les résultats de chaque simulation sont dans un fichier (une ligne par pas de temps, plusieurs mesures par ligne) que je peux lire par un simple read.table


    Seulement voilà, pour comparer efficacement toutes ces données selon les différents paramètres, je souhaiterais mettre tous ces résultats dans un tableau dont les dimensions seraient :
    * paramètre_1
    * paramètre_2
    * répétition

    ma_table[param1, param2, num_repetition] serait donc un data frame (en 2D) correspondant à ce que j'ai lu dans le fichier correspondant.


    J'espère que j'ai été suffisament clair et je vous remercie d'avance de vos réponse

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Par défaut
    Bonjour,

    Si j'ai bien compris ton problème, voici une idée de comment créer un tableau à 3 dimensions (initialisé à 0) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ma_table<-rep(0,p1*p2*r)
    dim(ma_table)<-c(p1,p2,r)
    Avec un exemple, cela donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    p1<-3; p2<-3; r<-2;
     
    ma_table<-rep(0,p1*p2*r)
    dim(ma_table)<-c(p1,p2,r)
     
    ma_table
    , , 1
     
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    [3,]    0    0    0
     
    , , 2
     
         [,1] [,2] [,3]
    [1,]    0    0    0
    [2,]    0    0    0
    [3,]    0    0    0
    Après, si tu veux savoir comment "remplir" un tel tableau à partir de tes données, je pense qu'il serait plus facile de t'aider si tu donnes un exemple (raccourci ^^) de ton jeu de données.


    Bonne continuation

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Membre chevronné
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Bonjour,
    je me permets d'ajouter une référence relative à l'exemple d'AD:
    http://cran.r-project.org/doc/manual...ro.html#Arrays

    Bonne continuation

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    Merci à tous les 2, J'étais donc passé à côté de cette (simple) affectation des dimensions d'un tableau!

    Au final voilà comment j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ma_table <- rep( 0, nb_p1 * nb_p2 * nb_repet * nb_lig * nb_col )
    dim( ma_table ) <- c( nb_p1, nb_p2, nb_repet, nb_lig, nb_col )
    ma_table[1,1,1,,] <- data.matrix( read.table( "fichier_111", h=F ) )
    ma_table[1,1,2,,] <- data.matrix( read.table( "fichier_112", h=F ) )
    ...
    Avec nb_p1, nb_p2 et ,n_repet le nombre de valeurs pour resp. le paramètre 1 et 2 et le nombre de répétitions pour chaque combinaison
    Fichier_xyz pour les valeurs x, y et z resp. pour p1, p2 et repet

    Evidemment, tous les read.table seront à mettre dans une boucle...

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Bonjour daf64 et bienvenue sur le forum

    ma_table[param1, param2, num_repetition] serait donc un data frame (en 2D) correspondant à ce que j'ai lu dans le fichier correspondant.
    Donc ce n'est plus en 2D

    Au final voilà comment j'ai fait : ...
    A mon avis, le problème avec cette approche est que la plupart des algorithmes ne passeront pas. Tu auras réussit à mettre toutes tes données dans une même structure mais ça sera compliqué de l'analyser.

    Personnellement, je travaillerais avec un tableau 2D classique, en mettant les paramètres dans des colonnes supplémentaires :
    Temps | X | Y | Z | paramètre1 | paramètre2 | répétition
    chaque ligne correspondant à un nouveau temps.
    Tu auras alors un tableau de "somme de toutes les lignes de tous les tableaux" lignes ; tu pourras appliquer les algorithmes habituels d'analyse mutlivariée, faire des regroupement, des sommes/moyennes par groupes, etc.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    Bonjour,

    Je ne suis pas sûr pour les algo d'analyse multivariée, par contre pour tout le reste, je peux tout à fait le faire ici,

    Par exemple, une donnée qui m'intéressait était la moyenne de la 6° colonne en fonction du paramètre 1, j'ai juste à faire
    mean( ma_table[1,,,,6] )
    mean( ma_table[2,,,,6] )
    ...

    Le problème avec la méthode que tu proposes, c'est qu'il faudra toujours considérer TOUTES les lignes pour ne garder que celle qui vérifient une condition.
    Dans mon jeu de données actuel, j'ai 13 millions de lignes, Ce serait dommage de parcourir toutes les données quand on n'est en fait intéressé que par une faible proportion de celles-ci...

  7. #7
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Mouais, pas convaincu. Mais bon, tant que ça marche et que ça te convienne, c'est le principal. Il faudra voir ce que ça donne à long terme

Discussions similaires

  1. matrices * vecteur
    Par delire8 dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 07/09/2002, 14h15
  2. [CR] entête et pied sur page 1/B de matrice
    Par chloe.j3 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/09/2002, 12h07
  3. Matrice de filtrage ?
    Par gimlithedwarf dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/08/2002, 09h44
  4. Gestion de matrice
    Par bzd dans le forum C
    Réponses: 4
    Dernier message: 12/08/2002, 18h19
  5. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

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