nikolajcandellari / APPR-2017-18

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

uvoz #9

Closed nikolajcandellari closed 6 years ago

nikolajcandellari commented 6 years ago

Pozdravljeni! V uvozu želim iz datoteke "Pregled dogodkov po kategorijah od 2005-2017.csv" uvesti podatke in med samim uvozom sem ugotovil da je pri nekaterih podatkih(pri številu intervencij) v uporabi decimalna vejica v drugih pa decimalna pika. Stvar sem želel odpraviti s spodnjo kodo pa mi ne uspeva. Morda vi vidite napako v moji kodi?

` intervencije.po.kategorijah.skozi.leta <- read_csv("podatki/Pregled dogodkov po kategorijah od 2005-2017.csv", skip = 5, n_max=559)

intervencije.po.kategorijah.skozi.leta$Število <- function(){ dolzina <- length(intervencije.po.kategorijah.skozi.leta$VrstaDogodka) a = integer(dolzina)

for (i in c(1:dolzina)){ if (intervencije.po.kategorijah.skozi.leta$SkupinaDogodka[i] %in% c("Požari v objektih" , "Nesreče v cestnem prometu" , "Požari v naravi oziroma na prostem" , "Tehnična in druga pomoč")){ a[i] <- 1000 * intervencije.po.kategorijah.skozi.leta$Število[i] } else{ a[i] <- intervencije.po.kategorijah.skozi.leta$Število[i] } } return(a) }`

jaanos commented 6 years ago

V tvojem primeru ne gre za decimalne vejice ali pike (povsod imaš namreč cela števila), pač pa za ločila tisočic. Treba bo torej povedati, naj se pika uporabi kot ločilo tisočic:

intervencije.po.kategorijah.skozi.leta <-
  read_csv("podatki/Pregled dogodkov po kategorijah od 2005-2017.csv",
           skip = 5, n_max = 559, locale = locale(grouping_mark = "."))

Mimogrede, v svojem primeru poskušaš stolpec nadomestiti s funkcijo, kar seveda ne bo šlo. Če bi hotel stvar urediti s svojo funkcijo (kar je seveda včasih potrebno), potem bi lahko uporabil npr. funkcijo sapply - seveda bi pa tvoja funkcija v tem primeru morala kot argument sprejeti staro vrednost v celici in vrniti novo. Lahko pa bi seveda delal kar s celotnim stolpcem (kot z vektorjem) hkrati, npr. z ifelse.