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 :

Sélection de lignes dans un tableau


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 61
    Par défaut Sélection de lignes dans un tableau
    Bonjour!

    J'aimerais créer un sous-tableau à partir d'un grand tableau d'environ 26000 lignes fois 400 colonnes en sélectionnant un certain nombre de lignes dont j'ai les noms des en-têtes. Les lignes du grand tableau ont aussi des noms.

    Y a-t-il un moyen assez rapide (le tableau est grand) de sélectionner ces lignes en utilisant leurs noms pour créer un nouveau tableau?

    Merci d'avance!

  2. #2
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Oui, c'est tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grandtableau[<vecteur nom des lignes>, ]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut
    Bonjour,

    1) Titi<-Toto[rownames(Toto)==c(les indices des lignes à extraire),]
    # dim(Toto)= 26000 400

    2) tu peux utiliser la fonction grep aussi je pense


    Bien à toi
    Manoir

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 61
    Par défaut
    Merci pour vos réponses. Le problème est que mes noms de lignes ne sont pas dans un vecteur, mais dans un facteur... et la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grand_tableau[noms_lignes,]
    ne donne pas les bonne lignes... Sauriez-vous pourquoi?

    Merci encore.

  5. #5
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Citation Envoyé par circe Voir le message
    ...ne donne pas les bonne lignes... Sauriez-vous pourquoi?
    Oui, les niveaux d'un facteurs ont en même temps une valeur numérique, correspondant à leur position dans le vecteur renvoyé par
    et un label (ce qui s'affiche).
    Si tu utilise ton facteur pour indicer les lignes, R va utiliser la valeur numérique (numéro de ligne, et là ça ne doit pas être les bonnes). Pour qu'il indice sur les noms de lignes, fais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grand_tableau[as.character(noms_lignes),]
    Edit: ce comportement des factors est franchement dangereux... j'ai déjà perdu des journées entières de boulot à trouver pourquoi des résultats n'étaient pas cohérents. On devrait à mon avis toujours les transformer en un autre type avant de les utiliser pour indicer quelque chose, même si c'est la valeur numérique qui est souhaitée : ça rendrait le comportement de R intuitivement plus prévisible.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 61
    Par défaut
    Merci, la solution avec

    fonctionne, mais en l'essayant sur un petit tableau 10 x 3, choisissant de sélectionner 3 lignes, elle prend un temps énorme...

  7. #7
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Citation Envoyé par circe Voir le message
    ...fonctionne, mais en l'essayant sur un petit tableau 10 x 3, choisissant de sélectionner 3 lignes, elle prend un temps énorme...
    Ça c'est pas normal du tout !
    Je vois quelques causes possibles (mais la liste n'est sûrement pas exhaustive) :
    1. y'a un prog externe qui te fais ramer ta bécanne (antivirus,...)
    2. tu utilises beaucoup (trop?) de mémoire et ça swape à mort (ça m'arrive parfois quand je bosse sur des très gros jeux de données)
    3. ...

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

Discussions similaires

  1. Sélection de lignes dans un tableau
    Par Belphegor59 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2012, 23h04
  2. Réponses: 1
    Dernier message: 20/10/2008, 21h57
  3. sélection de lignes dans un tableau
    Par schwarzy2 dans le forum Langage
    Réponses: 8
    Dernier message: 18/06/2008, 17h23
  4. probleme bizarre de hauteur auto d'une ligne dans un tableau
    Par zax-tfh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/01/2005, 23h34
  5. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28

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