gapipust / APPR-2019-20

Repozitorij z gradivi za predmet Analiza podatkov s programom R v študijskem letu 2019/20
MIT License
0 stars 0 forks source link

Uvoz podatkov #2

Closed katarinabrilej closed 4 years ago

katarinabrilej commented 4 years ago

Opazila sem, da datoteke za uvoz podatkov podatki.R nimaš shranjene v nobeni posebni mapi, zato predlagam, da jo shraniš v mapo uvoz (ki je že narejena).

Prav tako bi bilo bolje da jo preimenuješ v podatki.r(torej končnica .r namesto .R), saj se preostale datoteke končajo z .r (v primeru da bi potem to datoteko poklical z podatki.R bi to na Windowsih in Macu delovalo, na Linuxu pa ne).

V datoteki za uvoz ne rabiš posebej klicati knjižnic, ampak ukaz library(readr) dodaš v datoteko libraries.r v mapi lib in potem to poženeš vsakič pred začetkom dela.

gapipust commented 4 years ago

Pozdravljeni, samo v vednost, da sem datoteko podatki.R preimenoval v projekt_uvoz.r in jo premaknil v mapo uvoz. Poleg tega sem v njej malo spremenil kodo, ker sem gledal datoteko uvoz.r in so bile v njej definirane funkcije za uvoz, zato sem jih definiral tudi v svoji datoteki, ne vem pa če sem to storil prav, zato bi vas prosil, če lahko samo pregledate to datoteko, če je vse v redu. Hvala! Lep pozdrav in lepe praznike Gašper Pust

katarinabrilej commented 4 years ago

Tudi knjižnice tidyr ne potrebuješ v datoteki projekt_uvoz.r, dodaj pa še knjižnico dplyrv datoteko libraries.r (potrebuješ jo, da bo recimo operator %>% deloval). Ko dostopaš do csv datotek morajo biti poti do datotek podane relativno glede na vrhnjo mapo repozitorija, torej kot

'podatki/tour_occ_ninraw_1_Data.csv'

Če želiš, da ti funkcija vrne dve tabeli, ju podaj kot list,

return(list(slo_nocitve, hrv_nocitve))

potem pa moraš tabele še shraniti v nove spremenljivke, recimo tako

nocitve <- uvozi.nocitve()
slo_nocitve <- nocitve[[1]]
hrv_nocitve <- nocitve[[2]]

Enako narediš tudi za potovanja.

uvozi.potovanja <- function() {
  podatki_o_potovanjih <- read_csv('podatki/tour_dem_ttw_1_Data.csv', col_names=c('leto', 'destinacija', 'enote', 'namen', 'dolzina', 'drzava', 'vrednost', 'zastava'),
                                   skip=1, na=':', locale=locale(encoding='Windows-1250'))
  podatki_o_potovanjih$enote <- NULL
  podatki_o_potovanjih$zastava <- NULL

  #ločil bom podatke za Slovenijo in Hrvaško
  slo_potovanja <- podatki_o_potovanjih %>% filter(drzava == "Slovenia")
  slo_potovanja$drzava <- NULL

  hrv_potovanja <- podatki_o_potovanjih %>% filter(drzava == "Croatia")
  hrv_potovanja$drzava <- NULL

  return(list(slo_potovanja, hrv_potovanja))
}

potovanja <- uvozi.potovanja()
slo_potovanja<- potovanja[[1]]
hrv_potovanja <- potovanja[[2]]

Lepe praznike tudi tebi.

jaanos commented 4 years ago

Mimogrede, svetujem, da ne ločuješ podatkov za Slovenijo in Hrvaško, pač pa pustiš podatke za vse države (znebiš se lahko morebitnih sumarnih podatkov). Tako boš lahko npr. izrisal podatke za obe državi na istem grafu (filtriranje lahko potem opraviš kar sproti), poleg tega pa se izogneš potrebi po vračanju dveh podatkov iz funkcije.

gapipust commented 4 years ago

Pozdravljeni, našel sem tabelo, iz katere bi naredil zemljevid (podatki o nočitvah po občinah), vendar so manjkajoči podatki (torej n.a.) označeni s črko z ali pa z - (v isti datoteki je uporabljeno oboje). Zanima me, kako to napisati pri branju datoteke (torej če se da napisati v funkcijo na = 'z' in na = '-'), saj če poskušam v excelu zamenjati nekaj - s črko z (da bi lahko napisal v kodo na = 'z'), se datoteka čisto spremeni in pri branju pride do napake (podatki niso več ločeni tam kjer je vejica, ampak je v vsaki vrstici en podatek). Hvala in lep pozdrav Gašper Pust

jaanos commented 4 years ago

Parametru na lahko podaš vektor z vsemi vrednostmi, ki predstavljajo manjkajoče podatke, npr. na=c('z', '-').

gapipust commented 4 years ago

Sem popravil, hvala