Puzzle PowerQuery rezolvat cu R

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

#225–226

Puzzle-uri

Autor: ExcelBI

Toate fișierele (xlsx cu puzzle și R cu soluție) pentru fiecare puzzle sunt disponibile pe Github-ul meu. Bucurați-vă.

Puzzle #225

Uneori avem tabele frumoase cu așa-numitele date ordonate, unde fiecare observație înseamnă un rând. Dar acest lucru poate determina crearea unor zone vaste de date în foaia de calcul, care sunt greu de găsit și interpretat. De aceea, uneori, trebuie să îndoim datele, să le strângem și așa mai departe pentru a face, poate, o formă nu ordonată, dar lizibilă, precum o hartă pliabilă. În PQ Challenges, de obicei transformăm mesele înainte și înapoi, iar astăzi le stoarcem și le împăturim.

Se încarcă biblioteci și date

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")

Transformare

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)

Validare

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

Puzzle #226

După cum am scris câteva rânduri înainte, uneori avem diagramă cu date care uneori sunt chiar redundante pentru sine. Și trebuie să le presam ca lămâia proaspătă pentru a obține informații valoroase. Verifică-l și pe acesta.

Se încarcă biblioteci și date

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")

Transformare

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)

Validare

all.equal(result, test, check.attributes = FALSE)
#> (1) TRUE

Simțiți-vă liber să comentați, să distribuiți și să mă contactați cu sfaturi, întrebări și ideile dvs. despre cum să îmbunătățiți orice. Contactați-mă și pe Linkedin dacă doriți.


PowerQuery Puzzle rezolvat cu R a fost publicat inițial în Numbers around us on Medium, unde oamenii continuă conversația subliniind și răspunzând la această poveste.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.