Puzzle PowerQuery rezolvat cu R

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

#229–230

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 #229

Când cineva lucrează la un proiect mai mult de o lună, nu contează cu adevărat pentru el individual. Dar contabilii nu ar fi fericiți dacă am arunca costurile într-un interval care nu este o lună. Așadar, trebuie să atribuim o sumă fiecărei luni din durata acesteia, respectiv și proporțional. Aflați cum să o faceți.

Se încarcă biblioteci și date

library(tidyverse)
library(readxl)

path = "Power Query/PQ_Challenge_229.xlsx"
input = read_excel(path, range = "A1:D6")
test  = read_excel(path, range = "F1:H16")

Transformare

result = input %>%
  mutate(days = as.numeric(as.Date(`To Date`) - as.Date(`From Date`)) + 1, 
         daily = Amount / days) %>%
  rowwise() %>%
  mutate(date = list(seq(`From Date`, `To Date`, by = "day"))) %>%
  unnest(date) %>%
  mutate(`Month - Year` = paste0(str_pad(month(date), width = 2, "0", side = "left"), "-", str_sub(year(date), 3, 4))) %>%
  summarise(Amount = round(sum(daily),0), .by = c(Transaction, `Month - Year`))

Validare

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

Puzzle #230

Avem un rezumat al sumelor vânzărilor din întreaga lume, dar arată ca un grafic calendaristic cu pătrat pentru fiecare lună. Trebuie să o rezumam „modul matematic”. Așadar, mai întâi ordonați acest tabel, apoi stivuiți luni într-o structură pe două coloane, ordonați din nou și, în sfârșit, rezumați-le pe toate împreună în luni. Puțină mizerie, știu, dar este o treabă foarte rapidă.

Se încarcă biblioteci și date

library(tidylibrary(tidyverse)
library(readxl)

path = "Power Query/PQ_Challenge_229.xlsx"
input = read_excel(path, range = "A1:D6")
test  = read_excel(path, range = "F1:H16")

Transformare

result = input %>%
  mutate(days = as.numeric(as.Date(`To Date`) - as.Date(`From Date`)) + 1, 
         daily = Amount / days) %>%
  rowwise() %>%
  mutate(date = list(seq(`From Date`, `To Date`, by = "day"))) %>%cscscsssssssssssssssssssssssssssssSCsc
  unnest(date) %>%
  mutate(`Month - Year` = paste0(str_pad(month(date), width = 2, "0", side = "left"), "-", str_sub(year(date), 3, 4))) %>%
  summarise(Amount = round(sum(daily),0), .by = c(Transaction, `Month - Year`))

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.