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 :

Construire un tableau résumé


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 37
    Par défaut Construire un tableau résumé
    Bonjour,

    Je possède un tableau à 71 lignes et 2 colonnes.
    La première colonne donne le nom de l'espèce de poisson et la seconde un caractère qualitatif

    ex :
    espece_1 bleue
    espece_2 verte
    espece_3 bleue
    espece_4 jaune

    Je souhaiterai avoir un tableau de résumé du genre :
    bleue espece_1 espece3
    verte espece_2
    jaune espece_4

    avec un which (which==bleue...) j'ai réussi à extraire les noms des espèces mais je n'arrive pas à les mettre dans un tableau.
    J'ai essayé avec une liste mais il m'a répondu :
    object of type 'builtin' is not subsettable

    quelqu'un aurait une idée ?
    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 125
    Par défaut
    Bonjour

    Voici une proposition de solution basée sur la fonction "tapply" (pour plus info faire ?tapply ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dd <- data.frame(especePoisson = paste("espece_",1:72,sep=""),
                 caractere=sample(c("bleue","verte","jaune","rouge"),72,replace=TRUE),
    		     stringsAsFactors = FALSE
                     )
    
    with(dd,tapply(especePoisson,caractere,function(x){list(x)}))
    Qui 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
    20
    21
    $bleue
     [1] "espece_4"  "espece_5"  "espece_8"  "espece_9"  "espece_13" "espece_16"
     [7] "espece_19" "espece_22" "espece_24" "espece_28" "espece_39" "espece_47"
    [13] "espece_48" "espece_50" "espece_52" "espece_60" "espece_63" "espece_66"
    [19] "espece_69" "espece_71"
     
    $jaune
     [1] "espece_3"  "espece_11" "espece_12" "espece_18" "espece_25" "espece_27"
     [7] "espece_29" "espece_31" "espece_33" "espece_34" "espece_36" "espece_41"
    [13] "espece_43" "espece_49" "espece_51" "espece_53" "espece_55" "espece_56"
    [19] "espece_57" "espece_58" "espece_61" "espece_70"
     
    $rouge
     [1] "espece_6"  "espece_10" "espece_17" "espece_20" "espece_21" "espece_23"
     [7] "espece_26" "espece_32" "espece_38" "espece_54" "espece_65" "espece_68"
    [13] "espece_72"
     
    $verte
     [1] "espece_1"  "espece_2"  "espece_7"  "espece_14" "espece_15" "espece_30"
     [7] "espece_35" "espece_37" "espece_40" "espece_42" "espece_44" "espece_45"
    [13] "espece_46" "espece_59" "espece_62" "espece_64" "espece_67"
    J'espère avoir pu vous aider!
    Bonne continuation,

  3. #3
    Membre actif
    Femme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 37
    Par défaut
    super !!merci beaucoup,

    je souahite juste ajouter que si comme moi vous cherchez à mettre ces élements dans un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste=with(dd,tapply(especePoisson,caractere,function(x){list(x)}))
    1. Chercher le max du nombre d'élements de cette liste :
    max=max(length(liste$verte),length(liste$jaune),length(liste$bleue)

    2.Creer un tableau de taille max :
    (3 pour jaune, bleue, verte)

    3. Remplir le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tab[2:(length(liste$verte)+1),3]=liste$verte
    tab[2:(length(liste$jaune)+1),3]=liste$jaune
    ...
    Merci encore de votre aide !
    Cha

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

Discussions similaires

  1. [Tableaux] Construire un tableau de manière récursive
    Par eclipse012 dans le forum Langage
    Réponses: 26
    Dernier message: 23/01/2007, 15h59
  2. Construire un tableau hexagonale
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 23/01/2007, 00h33
  3. [XSLT] construire un tableau JavaScript
    Par Mike35 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/10/2006, 14h21
  4. [Tableaux] Construire un tableau compliqué
    Par Bomba dans le forum Langage
    Réponses: 5
    Dernier message: 08/06/2006, 16h38
  5. [HTML] Construire un tableau colonne par colonne ?
    Par Cthulhu 22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/05/2005, 15h31

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