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é :
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
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")
Cordialement,
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)
Arkning
Partager