Duzo12 / APPR-2018-19

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

Problem #2

Closed Duzo12 closed 5 years ago

Duzo12 commented 5 years ago

Ko združim dve poljubni tabeli, ki nista enaki po velikosti mi rstudio izpiše: Joining, by = "Država" Warning messages: 1: Column Država joining factor and character vector, coercing into character vector Zanima me ali to pomeni da sem storil napako ali moram tabeli urediti tako, da bosta imeli enako število vrstic in ju šele nato združiti. Sicer mi rstudio naredi tabelo, ki jo želim, vendar me samo zanima če je to napaka?

MarvinHerzog commented 5 years ago

Ne, s tem ni nič narobe. Če pogledaš tipe stolpcev v teh dveh tabelah:

> sapply(tabelaBDP,class)
      Država Vrednost.BDP 
 "character"    "numeric" 
> sapply(tabelaPlace,class)
      Država Višina.place 
    "factor"    "numeric" 

vidiš, da sta stolpca Država različnih tipov. To je zato, ker si ponekod po read_html() dodal %>% as.character(), ponekod pa ne. Morda je bolj korektno, da to poenotiš, vendar (zaenkrat še) ni bistveno. To lahko narediš tako: tabelaBDP$Država = as.character(tabelaBDP$Država). Mimogrede bi še priporočal, da se v splošnem izogibaš uporabi šumnikov v imenih spremenljivk in stolpcev, saj zna to včasih povzročati preglavice.

Kar se tiče joina pa ni potrebno, da imata tabeli enako število vrstic. Je pa pomembno, da se zavedaš kakšen join uporabiti v kakšni situaciji. Uporabil si inner join, kar pomeni, da bo končna tabela vsebovala le tiste elemente (države), ki nastopajo v obeh tabelah hkrati. Prilagam ti sliko za intuicijo. Sicer se gre za SQL, ampak logika je enaka.

image