Home Industrie et technologieInformatique et internetRésoudre les énigmes PowerQuery avec R : Guide pratique

Résoudre les énigmes PowerQuery avec R : Guide pratique

by Sara
France

Dans le domaine de l’analyse de données, PowerQuery et R sont des outils puissants qui peuvent être utilisés ensemble pour résoudre des problèmes complexes. Cet article présente deux énigmes PowerQuery et les solutions correspondantes en utilisant le langage R.

Énigme #225

Dans cette énigme, nous avons un ensemble de données organisé sous forme de tableaux. Cependant, cette structure peut rendre la recherche et l’interprétation des données difficiles. Il est souvent nécessaire de transformer ces données pour leur donner une forme plus lisible.

Chargement des bibliothèques et des données

Pour commencer, nous devons charger les bibliothèques nécessaires et les données :

library(tidyverse)
library(readxl)
path = "Power Query/PQ_Challenge_225.xlsx"
input = read_excel(path, range = "A1:D9")
test = read_excel(path, range = "F1:G12")

Transformation des données

Nous appliquons plusieurs transformations pour obtenir le format souhaité :

r1 = input %>%
    mutate(Id = consecutive_id(Group),
           `Emp ID` = as.character(`Emp ID`),
           Group = ifelse(Group == "Group A", "GroupA", Group))
r1_1 = r1 %>%
    select(Column1 = 1, Column2 = 2, ID = 5)
r1_2 = r1 %>%
    select(Column1 = 4, Column2 = 3, ID = 5)
r2 = rbind(r1_2, r1_1) %>%
    arrange(ID) %>%
    distinct() %>%
    select(-ID)

Validation

Pour valider notre transformation, nous comparons le résultat avec les données de test :

all.equal(r2, test, check.attributes = FALSE) #> [1] TRUE

Énigme #226

Cette fois, nous sommes confrontés à des données qui peuvent sembler redondantes. L’objectif est de les transformer afin d’en extraire les informations pertinentes.

Chargement des bibliothèques et des données

Comme précédemment, nous chargeons les bibliothèques et les données :

library(tidyverse)
library(readxl)
path = "Power Query/PQ_Challenge_226.xlsx"
input = read_excel(path, range = "A1:D13")
test = read_excel(path, range = "F1:I19")

Transformation des données

Voici comment les données sont transformées :

result = input %>%
    fill(`Dept ID`) %>%
    select(-`Highest Paid Employee`) %>%
    pivot_longer(-`Dept ID`, values_to = "Value") %>%
    separate(Value, into = c("Emp Names", "Salary", "Promotion Date"), sep = "-") %>%
    select(-name) %>%
    filter(!is.na(`Emp Names`)) %>%
    arrange(`Dept ID`, `Emp Names`) %>%
    mutate(`Promotion Date` = as.POSIXct(`Promotion Date`, format = "%m/%d/%Y", tz = "UTC"),
           Salary = as.numeric(Salary)) %>%
    select(`Dept ID`, `Emp Names`, `Promotion Date`, Salary)

Validation

Nous vérifions si notre résultat final est conforme aux attentes :

all.equal(result, test, check.attributes = FALSE) #> [1] TRUE
Powerquery R | Powerquery | R | Données | Informatique | Analyse | France

You may also like

Leave a Comment