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 :

Combinaisons dans tableau


Sujet :

R

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Combinaisons dans tableau
    Bonjour,
    J'ai créé un tableau croisé dynamique sous R de cette forme :
    IND	T1	T2	T3	T4	T5	T6
    l1	0	0	89	0	0	0
    l2	0	0	0	0	115	0
    l3	0	113	0	0	85	0
    l4	0	0	0	56	0	0
    l5	0	0	0	0	0	98
    l6	69	0	0	0	0	0
    l7	0	0	0	0	0	95
    l8	85	0	96	0	0	0
    l9	96	0	0	152	0	0
    l10	0	125	0	0	15	0
    J'aimerais à partir de ce tableau croisé, créer des sous-tableaux qui me permettent d'avoir les lignes qui présentent un chiffre avec les mêmes colonnes.
    Dans mon cas, j'aurai un tableau pour les lignes L5 et L7, un tableau pour les lignes L3 et L10.
    J'espère être assez claire, j'ai essayé de faire via une liste de combinaisons, mais j'arrive pas à obtenir le résultat attendu.
    Merci d'avance pour le coup de pouce.

  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 : 35
    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
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Je suis désolée mais je ne suis pas sûre de bien comprendre votre problématique :/

    Dans quoi votre tableau est-il stocké ? De quel type est-il ?

    Est-ce que vous voulez par exemple un "sous-tableau" avec uniquement les lignes 5 et 7 ?
    Si oui, est-ce que quelque chose comme ce qui suit ne ferait pas l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ST_5_7 <- monTableau[c(5,7), ]  # avec monTableau l'élément contenant votre tableau global
    HTH !


    Cordialement,


    -- Aline

    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
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Ce tableau correspond à une matrice qu'on va appeler Data.
    Je voudrais qu'une ligne de commande détecte automatiquement les lignes qui utilisent les mêmes testeurs (donc quand le résultat est non nul), comme la ligne 5 et 7 qui présentent des résultats non nuls pour les mêmes testeurs. Et ce suit, une extraction de ces lignées qu'on mettra dans une matrice à part qu'on appellera Data1 par exemple.
    À la fin je me retrouverai avec 3 tableaux
    Un tableau avec :
    IND T1 T2 T3 T4 T5 T6
    l5 0 0 0 0 0 98
    l7 0 0 0 0 0 95

    Un tableau avec :
    IND T1 T2 T3 T4 T5 T6
    l3 0 113 0 0 85 0
    l10 0 125 0 0 15 0

    Un autre, avec le reste des lignées.

    Sachant que mon nombre de lignes et mon nombre de testeurs sont variables.
    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Je suis archi-débutant en R, et donc incapable de faire cela autrement qu'avec des boucles longues et lentes.

    Mais je chercherais dans cette direction :

    - D'abord, passer par un premier tableau composé de 0 et de 1 ; sur cet exemple, L3 deviendrait 0 1 0 0 1 0
    - Et ensuite rechercher les lignes identiques.
    J'ai hâte de voir une solution.

  5. #5
    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 : 35
    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
    Points : 2 673
    Points
    2 673
    Par défaut
    Re-bonjour,

    Ok, c'est plus clair à présent, merci ^^
    L'idée de mona0 me parait une bonne première piste. J'ai essayé de la mettre en place (mais il y a probablement moyen de faire plus simple et plus "beau" ), voici ce que ça donne :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    D<-data.frame(IND=paste0("I", 1:5), T1=c(0, 5, 0, 0, 8), T2=c(0, 9, 5, 12, 41), T3=c(8, 0, 0, 0, 0), T4=c(0, 0, 0, 0, 0), T5=c(854, 3, 0, 0, 89))
    D
      IND T1 T2 T3 T4  T5
    1  I1  0  0  8  0 854
    2  I2  5  9  0  0   3
    3  I3  0  5  0  0   0
    4  I4  0 12  0  0   0
    5  I5  8 41  0  0  89
     
    Dbis<-apply(D[,-1], 2, function(x){ return(ifelse(x!=0, 1, 0)) })
     
    Dter<-apply(Dbis, 1, function(x){ return(paste0(x, collapse="")) })
     
    Duniq<-unique(Dter)
     
    nu<-length(Duniq)
     
    L<-vector("list", nu)
     
    for(k in 1:nu)
    {
        rw<-Duniq[k]
     
        pos<-which(Dter==rw)
     
        L[[k]]<-D[pos,]
     
    }
     
    L
    [[1]]
      IND T1 T2 T3 T4  T5
    1  I1  0  0  8  0 854
     
    [[2]]
      IND T1 T2 T3 T4 T5
    2  I2  5  9  0  0  3
    5  I5  8 41  0  0 89
     
    [[3]]
      IND T1 T2 T3 T4 T5
    3  I3  0  5  0  0  0
    4  I4  0 12  0  0  0
    Je suis curieuse de voir si d'autres ont des idées

    Bonne continuation !


    Cordialement,


    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.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Super ça! Merci Beaucoup

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    J'en profite de tes super compétences R pour une petite dernière question, comment puis je séparer les tableaux générés sous L? j'aimerais faire un write table pour chaque tableau (pour L[[1]], L[[2]] et L[[3]] dans ton exemple). Merci

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Ce code n'est peut-être pas optimal, mais il a l'énorme avantage d'être compréhensible par des personnes peu expérimentées, et donc l'avantage d'être 'maintenable'. Je vais immédiatement le copier/coller dans ma 'bibliothèque'.

    Merci.

  9. #9
    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 : 35
    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
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Citation Envoyé par AuroreGau Voir le message
    J'en profite de tes super compétences R pour une petite dernière question, comment puis je séparer les tableaux générés sous L? j'aimerais faire un write table pour chaque tableau (pour L[[1]], L[[2]] et L[[3]] dans ton exemple). Merci
    Merci

    J'ai justement choisi le stockage dans une liste car il est ensuite facile de "boucler" dessus.
    Par exemple, on peut rajouter à la fin quelque chose du genre de ce qui suit (on pourrait aussi utiliser une fonction de la famille des "apply" bien sûr...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fileName = paste0("Table", 1:nu, ".txt")
    fileName
    [1] "Table1.txt" "Table2.txt" "Table3.txt"
     
    for(k in 1:nu)
    {
         write.table( L[[k]], file = fileName[k] )
    }

    Cordialement,


    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.

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Au top!Merci, tu m'as appris pleins de trucs. A bientôt sur d'autres discussions

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

Discussions similaires

  1. [CR8.5] Pourcentage dans tableau ?
    Par Etienne51 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/08/2004, 14h00
  2. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 14h08
  4. [langage] tri dans tableau de hachage
    Par mimilou dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2004, 16h10
  5. pb de coord de tex dans tableau avec multitex
    Par sebh dans le forum OpenGL
    Réponses: 3
    Dernier message: 25/01/2004, 21h36

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