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 :

Transformation de data frame


Sujet :

R

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Epitech
    Inscrit en
    Mai 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Epitech

    Informations forums :
    Inscription : Mai 2019
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Transformation de data frame
    Bonjour,

    J'aimerais savoir comment je pourrais modifier mon dataframe pour avoir le résultat attendu, j'arrive à presque atteindre le résultat cependant ce n'est pas exactement ce que je souhaites et je suis un peu bloqué. Les données prisent comme exemple ne contiennent pas les données avec lesquelles je travail mais au niveau de la forme tout y est. C'est pour cela que le code doit être "générique" et non pas spécifique à l'exemple ci-dessous.

    Voici un exemple des données avec le traitement actuel que j'ai effectué :

    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
    df <- data.frame("C" = rep(c("C1"), 20),
                     "F" = c(rep(c("R"), 10), rep(c("C"), 10)),
                     "P" = c(rep(c("89"), 10), rep(c("110"), 10)),
                     "L" = c(rep(c("300"), 4), rep(c("30"), 6), rep(c("200"), 4), rep(c("20"), 6)),
                     "T" = c(rep(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 2)),
                     "Periode" = c(rep(c("2019-02-01"), 10), rep(c("2019-03-01"), 10)),
                     "M" = c(rep(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 2)), stringsAsFactors = FALSE)
     
    df_T <- aggregate(T ~ Periode+F+P, df, FUN = sum)
    df_L <- aggregate(L ~ Periode+F, df, FUN = min)
    df_M <- aggregate(M ~ Periode+F, df, FUN = sum)
     
    df_1 <- merge(df_T, df_L, by = c("Periode", "F"))
    df_end <- merge(df_1, df_M, by = c("Periode", "F"))
    df_end$Periode <- gsub(pattern = "-", replacement = "", x = str_extract(string = df_end$Periode, pattern = "-[0-9]+-"))
     
    my_result <- reshape(data = df_end,
                  idvar = c("Periode"),
                  timevar = c("F"),
                  direction = "wide")
    Et voici le résultat attendu (ce résultat découle de l'exemple du dessus):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    resultat <- data.frame("Periode" = c("P.R", "T.R", "L.R", "M.R", "P.C", "T.C", "L.C", "M.C"),
                         "02" = c(89, 55, 30, 55, NA, NA, NA, NA),
                         "03" = c(NA, NA, NA, NA, 110, 55, 20, 55), stringsAsFactors = FALSE)
    Cordialement,

    Arkning

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Epitech
    Inscrit en
    Mai 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Epitech

    Informations forums :
    Inscription : Mai 2019
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Je vais marquer la discussion comme résolu car j'ai finalement réussi à trouver la solution à mon problème, je vous la partage cela pourrai toujours servir à une autre personne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test <- data.frame(t(my_result), stringsAsFactors = FALSE)
    colnames(test) <- test[1,]
    test <- test[-1,]
    Cordialement,

    Arkning

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

Discussions similaires

  1. Transformation de data frame
    Par Arkning dans le forum R
    Réponses: 3
    Dernier message: 12/07/2019, 20h55
  2. Transformation matrice en data frame
    Par momo42 dans le forum R
    Réponses: 3
    Dernier message: 18/07/2017, 11h35
  3. Trier une data frame
    Par manoir dans le forum R
    Réponses: 4
    Dernier message: 28/04/2009, 16h29
  4. Réponses: 2
    Dernier message: 14/11/2008, 14h53
  5. Transformer String data dans sous-etat en date
    Par raha_mtl dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 05/11/2007, 11h26

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