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 des lignes d'un tableau


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Par défaut sélection des lignes d'un tableau
    Bonjour,

    J'aimerai faire apparaitre les lignes d'un tableau dont la valeur dans les colonne "Un", "Deux" ou "Trois" est égale a "i" ou a "iW"

    Voici mon tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Un <- c(3,"3W",10,5,5)
    Deux<-c(5,10,5,3,1)
    Trois<-c(4,4,4,4,3)
    matrice <- matrix(c(Un,Deux,Trois), nrow=5, ncol=3)
    # Et des colonnes
    colnames(matrice) <- c("Un","Deux", "Trois")
    Comment faire?

    Merci par avance

  2. #2
    Membre chevronné
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ?which
    ?grep
    ?`==`
    ?`%in%`
    ?`[`
    HTH

    Vincent

  3. #3
    Membre très actif
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Par défaut
    Merci, mais j'ai déjà essayé tout ça et ça suffit pas. La solution est plus complexe qu'il n'y parait au premier regard.

    Je n'y arrive vraiment pas, il y a toujours quelque chose qui rate.

  4. #4
    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
    Hello,

    Juste pour être bien certain, dans l'exemple que vous donnez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    > matrice
         Un   Deux Trois
    [1,] "3"  "5"  "4"  
    [2,] "3W" "10" "4"  
    [3,] "10" "5"  "4"  
    [4,] "5"  "3"  "4"  
    [5,] "5"  "1"  "3"
    Si i=3 alors la fonction doit donner 1 2 4 5 comme solution... c'est correct ?

    Si oui, voici une proposition de solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i <- 3
    which(apply(matrix(as.character(matrice) %in% c(i,paste(i,"W",sep="")) ,ncol=ncol(matrice)),1,sum)>0)

  5. #5
    Membre très actif
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Par défaut
    Merci! dans l'exemple votre code marche merveilleusement bien.
    J'ai remplacé "matrice" par "matrice[,1:3]" pour choisir les colonnes où chercher (dans le cas d'un tableau plus grand).

    Malheureusement, après avoir adapté le code à un fichier csv, R me répond :

    [1] Chiffre Un Deux Trois
    <0 lignes> (ou 'row.names' de longueur nulle)
    voici mon code complet:
    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
     
    num<-c(1:5)
    Un <- c(3,"3W",10,5,5)
    Deux<-c(5,10,5,3,1)
    Trois<-c(4,4,4,4,3)
    matrice <- matrix(c(num,Un,Deux,Trois), nrow=5, ncol=4)
     
    # Nom des colonnes
    colnames(matrice) <- c("Chiffre","Un","Deux", "Trois")
     
    matrice
     
    #i ou iW dans les colonnes un deux ou trois
    matrice[which(apply(matrix(as.character(matrice[,1:3]) %in% c(i,paste(i,"W",sep="")) ,ncol=ncol(matrice[,1:3])),1,sum)>0),]
     
    #enregistre
    write.table (matrice, file = "TEST.csv", sep=",",row.names=FALSE, na="")
     
    #efface mémoire
    rm(list=ls())
     
    #Lecture du fichier ou trouver les informations
    echantillon<-read.csv("TEST.csv")
     
    echantillon
     
    i<-4
     
    echantillon[which(apply(matrix(as.character(echantillon[,2:4]) %in% c(i,paste(i,"W",sep="")) ,ncol=ncol(echantillon[,2:4])),1,sum)>0),]
    Je retombe toujours sur ce problème. Pourquoi ?

  6. #6
    Membre très actif
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Par défaut
    J'ai trouvé!
    Après ouverture du fichier, je dois le transformer en matrice.

    Mais je ne sais absolument pas pourquoi. Quelqu'un aurait le courage de m'expliquer?

    Merci par avance.

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

Discussions similaires

  1. [XL-2010] Trier des lignes d'un tableau à partir d'une sélection listbox
    Par JulienLeno dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 19/10/2011, 16h00
  2. Ordre de sélection des lignes sur une table DB2
    Par Pierre Formosa dans le forum DB2
    Réponses: 1
    Dernier message: 26/04/2006, 20h03
  3. [HTML] Hauteur des lignes d'un tableau
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/03/2006, 10h46
  4. Cacher des lignes d'un tableau
    Par frechy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/07/2005, 12h05
  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