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électionner ligne dans dataframe avec mesures répétées


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut Sélectionner ligne dans dataframe avec mesures répétées
    Bonjour à tous,

    Je travaille sur R, et je suis bloqué pour un traitement de ma base.
    J'ai une base qui a plusieurs lignes par patient.
    Chaque patient a une variable "numéro d'hospitalisation" (nHospi) propre et donc identique à chaque ligne et une variable "numéro de séquence d'hospitalisation" (nNumSeq) différente, incrémentielle de ligne en ligne. Ce nombre de séquences peut varier selon le patient de 1 à 29.

    Je souhaite pour chaque patient et donc pour chaque numéro d'hospitalisation, sélectionner la ligne qui a le numéro de séquence maximal.

    Merci d'avance pour votre aide.

    P.

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Par défaut
    Bonjour Pierrick.

    Je n'ai sûrement pas la meilleure réponse, mais je te proposerais quelque chose du style:

    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
    # récupérer le nombre de l'identifiant des hospitalisés
    Ident <- levels(data$nHospi)
    NbIdent <- length(Ident)
     
    # récupérer le nombre max de sequence correspondant à chaque identifiant
    NbSequence=c(rep(0,NbIdent))
    for (i in 1:NbIdent)
    {
         ExtractionPatient <- subset(data,nHospi=Ident[i])
         NbSequence[i] <- max(ExtractionPatient$nNumSeq)
    }
     
    # Récupérer les données voulues
    a_conserver = subset(data, (nHosip==Ident[1] & nNumSeq==NbSequence[1] ))
    for (i in 2:NbIdent)
    {
         a_conserver <- rbind(a_conserver,subset(data, (nHosip==Ident[i] & nNumSeq==NbSequence[i] ))
    }
    Voila, c'est assez moche comme solution,
    je suis loin d'être un pro dans R et il y a sûrement de nombreuses fonctions que je ne connais pas qui pourraient faire ça plus rapidement que mes petites lignes.

    Cordialement

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Par défaut
    Alors si j'ai bien compris tu as un dataframe de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = data.frame(nHospi=c(1,1,1,2,2,3,3,4,4,4),nNumSeq=c(1,2,3,1,2,1,2,1,2,3),Infos=rep("blabla"))
       nHospi nNumSeq  Infos
    1       1       1 blabla
    2       1       2 blabla
    3       1       3 blabla
    4       2       1 blabla
    5       2       2 blabla
    6       3       1 blabla
    7       3       2 blabla
    8       4       1 blabla
    9       4       2 blabla
    10      4       3 blabla

    Si tel est le cas alors c'est pas compliqué
    tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    as.vector(unlist(lapply(split(d,d$nHospi),function(x){ as.numeric(rownames(x)[which.max(x$nNumSeq)]) })))
    et c'est réglé

    bon ca peut paraître déroutant au premier abord mais en décomposant la ligne on comprend facilement

Discussions similaires

  1. Sélectionner lignes dans un tableau selon valeur colonne
    Par jessie1611 dans le forum Fortran
    Réponses: 16
    Dernier message: 03/10/2011, 10h35
  2. Sélectionner lignes dans un fichier texte
    Par doudou49 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/12/2010, 11h11
  3. Modèle Mixte avec Mesures répétées
    Par elvolcano dans le forum R
    Réponses: 0
    Dernier message: 18/01/2010, 17h39
  4. Modèle mixte avec mesures répétées sur 2 variables
    Par medsas dans le forum SAS STAT
    Réponses: 1
    Dernier message: 15/06/2009, 15h57
  5. sélectionner ligne dans un datatable
    Par chris_013 dans le forum JSF
    Réponses: 2
    Dernier message: 05/02/2009, 11h16

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