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 :

Création de sous datas frames selon la 1ere colonne d'un data frame


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 27
    Par défaut Création de sous datas frames selon la 1ere colonne d'un data frame
    Bonjour,
    Je dois faire des sous datas frames à partir de col1 d'un data frame sachant que les individus y sont plus ou moins présent.
    Pourriez vous m'aider ?

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    bonjour,
    si je comprends bien tu veux scinder ton dataframe initiale en plusieurs sous dataframes suivant les valeurs de la colonne col1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    library(dplyr)
    library(purrr)
     
    ## df le dataframe initial
    liste_ss_df<- map(unique(df$col1),~df %>% filter(col1 ==.x))
    ## liste_ss_df contient la liste de tous les sous dataframe créés suivant les valeurs unique de col1
    la fonction map du package purrr prend généralement 2 arguments le premier une liste , le deuxième une fonction et retourne une liste de d'objet , c'est équivalent à une boucle for on parcourt la liste que l'on applique à la fonction
    cdlt

    PS peut_être plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     liste_ss_df<- split.data.frame(df,df$col1)

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 27
    Par défaut
    Je te remercie de ta réponse

    Lorsque j'entre ces commandes il me met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    liste_ss_dat<- map(unique(dat[,1]),~dat %>% filter(dat[,1] ==.x))
     liste_ss_dat
    $`CODE PLANTE`
    Error in nchar(x[is_na], type = "width") : 
      invalid multibyte string, element 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    liste_ss_df<- split.data.frame(dat,dat[,1])
    liste_ss_df
    $`BQ_02_05`
    Error in nchar(x[is_na], type = "width") : 
      invalid multibyte string, element 1

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    donne un head de ton dataframe

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 27
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    head(dat)
    # A tibble: 6 x 10
      `CODE PLANTE` Traitt  Bloc `N°HF` ZONE  `L (mm)` `#fleurs_estimé~ `#graines`
      <chr>         <chr>  <dbl> <chr>  <chr> <chr>               <dbl> <chr>     
    1 BQ_02_05      WP         1 H1     Z1    20.3700~               14 83        
    2 BQ_02_05      WP         1 H1     Z2    19.43                  16 33        
    3 BQ_02_05      WP         1 H1     Z3    18.2199~               13 7         
    4 BQ_02_05      WP         1 H2     Z1    3.00999~               11 -1        
    5 BQ_02_05      WP         1 H2     Z2    3.08000~                7 -1        
    6 BQ_02_05      WP         1 H2     Z3    2.91999~                4 -1

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    je pense que s'est du à tes noms de colonnes avec des caractères spéciaux : d'une manière générale il faut éviter caractères spéciaux et là tu les collectionne # ~ () ° et les caractères accentués ainsi que les espaces
    personnellement quand j'ouvre un dataframe je mets en forme les noms avec la fonction clean_names du package janitor

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    library(janitor)
    mon_dataframe%>% clean_names("snake")
    l'option snake transforme par ex NOM De Colonne en nom_de_colonne

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

Discussions similaires

  1. Extraire une sous data.frame
    Par manoir dans le forum R
    Réponses: 4
    Dernier message: 10/07/2009, 14h39
  2. Création .bat sous Windows 2000
    Par josianedenis dans le forum Windows
    Réponses: 13
    Dernier message: 07/05/2006, 17h58
  3. Création de sous-domaine...
    Par fabreizhad dans le forum Domaines
    Réponses: 6
    Dernier message: 14/02/2006, 00h09
  4. Création de sous menus
    Par illusion dans le forum Eclipse Platform
    Réponses: 27
    Dernier message: 27/06/2003, 11h45

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