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 :

Je cherche à subdiviser un data frame en plusieurs data frameq selon les modalités d'une variable y


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Je cherche à subdiviser un data frame en plusieurs data frameq selon les modalités d'une variable y
    Bonjour,
    Dans le cadre d'un projet de création d'un package R pour l'analyse discriminante prédictive, je souhaite subdiviser mon data frame selon les modalités de la variable à prédire (y).

    Voici à quoi ressemble mon code :

    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
    mat.var<- function(my_data) {
      ##Définir la variable y de type facteur
      for (i in 1 : ncol(my_data)) {
        if (class(my_data[,i]) == "factor" || class(my_data[,i]) == "character")  {
          y <- my_data[,i]
        }
      }
      ## Fin de la définition de la variable y
      #Subdivision selon les modalités de Y
    
      #Niveaux de y
      y.levels <- levels(y)
      for (i in 1 : length(y.levels)) {
       a <- subset(my_data, y == y.levels[i])
      } 
      print(a)
    }
    Ce qui se passe est que dans ma variable a, je retrouve que le dataframe de la dernière modalité, ce qui est normal vu que a est écrasée après chaque itération.
    Ce que je souhaite avoir est assez de data frames que de nombres de modalités y.
    Merci beaucoup pour vos propositions.
    Salma

  2. #2
    Membre actif Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Points : 200
    Points
    200
    Par défaut
    bonjour,

    vous pouvez faire une liste de dataframe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    a.list <- list()
    ...
    # loop
    ...
    a.list[[i]] <- a
    sinon pour découper le dataframe en plusieurs dataframe selon des factors, la fonction split semble assez adaptée,

    cdt

  3. #3
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Points : 561
    Points
    561
    Par défaut
    Bonjour,

    la fonction split permet de subdiviser un data.frame en fonction des modalités d'un facteur, et tous les sous tableaux sont stockés dans une liste.
    cdlt

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/12/2016, 11h21
  2. Créer une data.frame à partir de plusieurs listes
    Par charlotte77 dans le forum R
    Réponses: 4
    Dernier message: 10/06/2013, 23h38
  3. Réponses: 3
    Dernier message: 11/02/2013, 09h45
  4. convertir un data frame en un data set
    Par hazem2410 dans le forum R
    Réponses: 5
    Dernier message: 28/06/2012, 10h24
  5. Lecture de plusieurs sons wav selon les cas
    Par Ghunter59 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/12/2008, 22h21

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