January 13, 2021
R v Power BI – datumski podatki
V članku je uporabljen Power BI Desktop verzije 2.76.5678.782 (December 2019).
Pri delu z datumskimi podatki moramo biti previdni, saj datumskega tipa R ne prepozna. Oglejmo si naslednji primer. Imamo tabelo s stolpcema Date in Price. Stolpec Date je tipa datum.
Uporabimo R, da tabeli dodamo nov stolpec Price2, ki je za faktor 2 večji od Price. Sledimo naslednjim korakom.
Odpremo Transform > Run R script.
Vnesemo naslednji ukaz:
newname = dataset
newname[‘Price2’] = newname[‘Price’]*2
Prva vrstica ustvari novo spremenljivko z imenom newname, ki je kopija spremenljivke dataset. Izvirna tabela oz. dataframe je vedno poimenovan dataset in ga ne moremo spreminjati, zato ustvarimo njegovo kopijo.
Druga vrstica dataframe-u newname doda stolpec Price2, ki je produkt stolpca Price in vrednosti 2.
Potrdimo z OK in dobimo novo tabelo newname.
Vidimo, da R ne prepozna datumskih podatkov. Za naprednejše delo z datumi v R se moramo običajno poslužiti katere od zunanjih knjižnjic. V primeru, da je skripta dovolj preprosta, si lahko pomagamo tudi s pretvorbo datumskega stolpca v število. Oglejmo si oba primera.
Primer: spremenimo datumski stolpec v besedilo
Začnemo z enako tabelo kot v zgornjem primeru.
Sledimo naslednjim korakom.
Datumski stolpec spremenimo v besedilo. Na stolpcu Date za tip izberemo Text.
Besedilo poznamo po levi poravnavi.
Zdaj nadaljujemo enako kot v zgornjem primeru. Dodati želimo stolpec Price2, ki bo produkt stolpca Price in vrednosti 2. Izberemo Transform > Run R script.
Vnesemo enaka ukaza kot v zgornjem primeru.
newname = dataset
newname[‘Price2’] = newname[‘Price’]*2
Potrdimo z OK. Dobimo novo tabelo, v katerem imamo datume, a so ti še vedno tretirani kot besedilo.
Spremenimo tip stolpca Date v datum.
Primer: računanje mesečnega povprečja
Zgornji primer s spremembo tipa datum v besedilo je zgolj hitra rešitev, ki se je poslužimo pri preprostih R poizvedbah. Pogosto pa želimo znotraj R skripte dejansko manipulirati z datumi. V tem primeru moramo znotraj R skripte tip stolpca spremeniti nazaj v datum. Oglejmo si to na primeru.
Na isti tabeli želimo izračunati mesečno povprečje.
Sledimo naslednjim korakom.
Datumski stolpec spremenimo v besedilo. Na stolpcu Date za tip izberemo Text.
Besedilo prepoznamo po levi poravnavi.
Izberemo Transform > Run R script.
V okno vnesemo naslednje ukaze. Komentarji, ki so označeni s simbolom #, opišejo vsak korak.
# ‘dataset’ holds the input data for this script
newname = dataset #ustvarimo duplikat
newname$Date = as.Date(newname$Date, format = “%m/%d/%Y”) #pretvorimo tip stolpca Date v datum
newname$Month = format(newname$Date, format = “%m”) #dodamo nov stolpec Month oz. Mesec
newname$Year = format(newname$Date, format = “%Y”) #dodamo nov stolpec Year oz. leto
newname = aggregate(Price ~ Month + Year, newname, mean) #agregiramo v povprečje
Potrdimo z OK. Dobili smo mesečna povprečja cen.
Isti rezultat lahko dosežemo na več načinov, tudi z uporabo katere od R knjižnjic.