StanicR17 / 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

svetovni testi po dnevih #5

Open StanicR17 opened 4 years ago

StanicR17 commented 4 years ago

Zdravo,

pri analizi želim ustvariti graf, ki bo glede na dan v tednu in glede na kontinent pokazal vsoto vseh testiranj na tisti dan, hkrati pa bo na grafu predstavljena velikost kontinenta glede na število prebivalcev (recimo vsota vseh četrtkov vseh evropskih držav). Ker je v podatkih nekaj "NA" - jev, se vse sešteje v "NA". S funkcijo sem poiskusil najprej vse NA-je spremeniti v 0, vendar mi še vedno vrača "NA". Zanima me tudi, kako potem iz ponedeljek, torek .. itd dobiš nekaj smiselnega za izrisati.

zbrisi_NA <- function(stolpec){ for(i in 1:length(stolpec)){ if(is.na(stolpec[i])== TRUE){ stolpec[i] = 0 } } }

podatki_svet_brez_NA <- podatki_svet podatki_svet_brez_NA$new_cases <- zbrisi_NA(podatki_svet_brez_NA$new_cases)

svetovno_testiranje_po_dnevih <-podatki_svet_brez_NA %>% mutate(dan_v_tednu= weekdays(podatki_svet$date)) %>% select(dan_v_tednu,new_tests,continent) %>% group_by(dan_v_tednu,continent)%>% summarise(stevilo_testov_po_dnevih=sum(new_tests)) for(i in 1:7){ svetovno_testiranje_po_dnevih$continent[7*i] <- "International" }

jaanos commented 4 years ago

Če želiš seštevati vrednosti, ki niso NA, lahko uporabiš funkcijo sum s parametrom na.rm=TRUE, npr.

dnevi.v.tednu <- as.Date(0:6, origin="1900-01-01") %>% weekdays()
svetovno_testiranje_po_dnevih <-podatki_svet %>%
  mutate(dan_v_tednu=weekdays(date) %>% factor(levels=dnevi.v.tednu, ordered=TRUE)) %>%
  group_by(dan_v_tednu, continent) %>%
  summarise(stevilo_testov_po_dnevih=sum(new_tests, na.rm=TRUE)) %>%
  drop_na(continent)

Tukaj se za dneve v tednu uporabi urejen faktor, da bodo ti potem ustrezno urejeni na grafu, npr.:

ggplot(svetovno_testiranje_po_dnevih,
       aes(x=as.numeric(dan_v_tednu), y=stevilo_testov_po_dnevih, color=continent)) +
  geom_line() + scale_x_continuous(breaks=1:7, labels=dnevi.v.tednu)