COVID19fi -tartuntaketjujäljityksen kuntatasoinen tieto julkiseksi

COVID19-tartuntaketjujäljityksen kuntatasoinen tieto tulee julkaista ainakin seuraavien muuttujien suhteen:

  1. Altistuneet
  2. Tavoitetut/tavoittamattomat
  3. Karanteeniin asetettujen lukumäärät
  4. Jäljityksen resurssit/altistuneet

Perusteluita miksi pidän asiaa tärkeänä on yksinkertaisesti #go2zero tilaan pääsy ja siellä pysyminen. Yksikin tartunta on liikaa ja toimimalla järkevästi asian tila saadaan kyllä korjattua.

Vaatii tosin ketteryyttää ja oikea-aikaista reagointia, mutta on täysin mahdollista saavuttaa, mikäli vaan kaikkien tahtotila on sama.

1. Altistuneiden lukumäärä kertoo kuntakohtaisesti, miten vakavasta tai laajasta ongelmasta on kysymys.

2. Sairaanhoitopiiritasolla tämän tiedon avulla voitaisiin kohdentaa tartuntaketjujäljityksen resursseja sellaisille alueille, joissa aivan selvästi on vaikeuksia tavoittaa altistuneita ja/tai heidän läheisiään. Aikaa vievää hommaa, joka vaatii puhelinmyyjän hermot.

3. Karanteeniin asetettuja tulisi kontakoida ja varmistaa, että ketju ei vuoda. Mikäli määrät ovat suuria, niin samalla riski vuodoille kasvaa, koska kukaan ei ehdi kontrolloimaan asiaa. Karanteenissa olevien talous- ja ruokahuolto pitää myös pelata siten, että ketju ei katkea. Mikäli olet karanteenissa, niin yksikin kauppareissu voi aiheuttaa katastrofin.

4. Edellä olevien tietojen perusteella voidaan alueellisesti arvioida onko tartuntaketjujäljityksen resurssit riittävät.
Ei riitä, että hammashuollon työntekijöitä on “lainattu” tähän tehtävään, vaan kokonaisuuteen pitää varata vain tähän tehtävään omistautuneita henkilöitä.

#go2zero #COVID_19 #SARSCoV2 #tartunnat #koronasuomi #koronafi

Oiredata ja tartunnat

Ikäryhmäkohtaisten oiretietojen kautta voidaan approksimoida tartuntamääriä. Mentelmiä on varmaan muitakin, mutta antaa osviitta siitä mitä mahdollisesti tapahtuu seuraavan kahden viikon aikana.

Katsoin ikäryhmäkohtaisia vastaavien viikkojen tartunta- ja oiretietoja. Kun lasketaan viikon 30 oiretietojen summa ja siitä suhdeluku suhteessa tartuntojen viikkokohtaiseen summaan sain keskimäärin ikäryhmäkohtaisessa tarkastelussa 29.4 oire-ilmoitusta / tartunta /viikko.

Kehitysideoita. Viikkokohtaiset erittelyt tulisi tehdä seuraavalla tavalla:

  • oiredata aikaväli viikko, kahden viikon takainen
  • tartuntadata aikaväli viikko, edellinen viikko nykyhetkestä

Tarkastelu tulee oiredatan suhteen tehdä kahden viikon päähän, koska 4-7 päivää COVID-19 tauti saattaa olla oireinen tai vähäoireinen. Oireiden alusta menee 4-6 päivää, kunnes potilas hakeutuu testeihin tai saa testituloksen. Pari kolme päivää varataan testituloksen saamiselle, näin ollen viikkokohtainen aikaväli on perusteltu, kunhan oire- ja tartuntadatan aikaväli on 2 viikkoa. Eli esim. viikon 30 tartuntatiedot ja vastaavasti viikon 27 oiredata. Näiden avulla voidaan määrittää suhdeluvut ja käyttää niitä tulevien viikkojen ennusteissa.

COVID19 – FI – kunta- ja päiväkohtaiset tartunnat 2020

Alla oleva data on ladattu THL:n avoimen rajapinnan kautta. Viimeisin päivitys 26.7.2020 klo 12:00.

LATAA tiedosto: Tartuntatiedot ajettu avoimesta rajapinnasta – päivittäin ja kunnittain.

26.7.2020 ajolistauksessa päiväkohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 25.7.2020 lukuarvo.
22.06.2020 | 5(4) +1
25.06.2020 | 14(15) -1
15.07.2020 | 5(6) +1
23.07.2020 | 3(2) +1
24.07.2020 | 8(5) +3
25.07.2020 | 2(0) +2

26.7.2020 ajolistauksen kuntakohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 25.7.2020 lukuarvo.
Turku | 212(213) -1
Helsinki | 2771(2769) +2
Vantaa | 910(906) +4

23.7.2020 ajolistauksessa päiväkohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 22.7.2020 lukuarvo.
22.04.2020 | 122(123) -1
04.05.2020 | 134(135) -1
07.05.2020 | 106(107) -1
08.05.2020 | 81(79) +2
09.05.2020 | 47(46) +1
11.05.2020 | 93(94) -1
12.05.2020 | 67(68) -1
13.05.2020 | 79(78) +1
14.05.2020 | 51(54) -3
15.05.2020 | 55(54) +1
18.05.2020 | 45(43) +2
20.05.2020 | 43(44) -1
22.05.2020 | 32(31) +1
29.05.2020 | 21(22) -1
30.05.2020 | 10(11) -1
02.06.2020 | 15(14) +1
04.06.2020 | 12(10) +2
18.07.2020 | 7(6) +1
20.07.2020 | 11(10) +1
21.07.2020 | 7(4) +3
22.07.2020 | 4(0) +4
Tartuntojen kokonaismäärä nyt 7372.

23.7.2020 ajolistauksen kuntakohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 22.7.2020 lukuarvo.
Jyväskylä | 109(108) +1
Helsinki | 2768(2766) +2
Espoo | 842(839) +3
Kerava | 80(77) +3

22.7.2020 ajolistauksessa päiväkohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 21.7.2020 lukuarvo.
03.06.2020 | 25(26) -1
06.06.2020 | 13(12) +1
02.07.2020 | 7(8) -1
18.07.2020 | 6(4) +2
19.07.2020 | 3(2) +1
20.07.2020 | 10(4) +6
21.07.2020 | 3(0) +3
Tartuntojen kokonaismäärä nyt 7362.

22.7.2020 ajolistauksen kuntakohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 21.7.2020 lukuarvo.
Maarianhamina | 16(15) +1
Turku |208(205) +3
Tampere | 141(140) +1
Jyväskylä | 108(107) +1
Helsinki | 2766(2764) +2
Espoo | 839(837) +2
Kerava | 77(76) +1

21.7.2020 ajolistauksessa päiväkohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 20.7.2020 lukuarvo.
08.04.2020 | 138(137) +1
05.05.2020 | 126(125) +1
21.05.2020 | 22(21) +1
04.07.2020 | 2(1) +1
15.07.2020 | 5(4) +1
19.07.2020 | 2(0) +2
20.07.2020 | 4(0) +4
Muuttuneita tietoja kaikkiaan 7 kpl. Tartuntojen kokonaismäärä nyt 7351.

21.7.2020 ajolistauksen kuntakohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 20.7.2020 lukuarvo.
Turku | 205(204) +1
Eurajoki |7(6) +1
Savonlinna | 12(11) +1
Kokkola | 8(9) -1
Helsinki | 2764(2758) +6
Vantaa | 902(899) +3

20.7.2020 ajolistauksessa päiväkohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 19.7.2020 lukuarvo.
14.06.2020 | 4(3) +1
13.07.2020 | 6(7) -1
16.07.2020 | 9(8) +1
18.07.2020 | 4(0) +4
Muuttuneita tietoja kaikkiaan 4 kpl. Tartuntojen kokonaismäärä nyt 7340.

20.7.2020 ajolistauksen kuntakohtaisissa tartuntatiedoissa seuraavat muutokset. Sulkeissa eilinen 19.7.2020 lukuarvo.
Maarianhamina | 15(16) -1
Pori | 25(24) +1
Kokkola | 9(8) +1
Espoo | 837(836) +1
Helsinki | 2758(2756) +2
Vantaa | 899(898) +1

19.7.2020 ajolistauksessa päiväkohtaisissa tartuntatiedoissa seuraavia muutoksia: Sulkeissa eilinen 18.7.2020 lukuarvo.
06.05.2020 | 90(91) -1
25.06.2020 |15(14) +1
02.07.2020 |8(1) +7
16.07.2020 |8(4) +4
17.07.2020 |6(0) +6
Muuttuneita tietoja kaikkiaan 5 kpl. Tartuntojen kokonaismäärä nyt 7335.

18.7.2020 ajolistauksessa päiväkohtaisissa tartuntatiedoissa seuraavia muutoksia: Sulkeissa eilinen 17.7.2020 lukuarvo.
16.03.2020 | 52(51) +1
29.06.2020 |15(14) +1
03.07.2020 |5(4) +1
09.07.2020 |8(5) +3
10.07.2020 |7(3) +4
15.07.2020 |4(2) +2
16.07.2020 |4(0) +4
Muuttuneita tietoja kaikkiaan 8 kpl. Tartuntojen kokonaismäärä nyt 7318.

17.7.2020 ajolistauksen mukaan päiväkohtaisissa tartuntatiedoissa seuraavia muutoksia:
Sulkeissa eilinen 16.7.2020 lukuarvo.
8.4.2020 | 137(138) -1
7.5.2020 |105(107) -2
8.6.2020 |9(8) +1
24.6.2020|15(16) -1
5.7. 2020 |2(1) +1
8.7. 2020 |10(9) +1
10.7.2020|3(2) +1
11.7. 2020|0(1) -1
13.7. 2020|7(6) +1
14.7. 2020|5(2) +3
15.7. 2020|2(0) +2
Muuttuneita tietoja kaikkiaan 11 kpl. Tartuntojen kokonaismäärä nyt 7301 kpl.

COVID19 tartunnat ikäryhmittäin, sukupuolittain, sairaanhoitopiireittäin ja kunnittain – R Studio

THL:n avoimen rajapinnan kautta pääsee lataamaan tartuntatautirekisterin tietoja suoraan alla olevan ohjeen mukaisesti. Alla listattuna tarvittavat R-kirjastot ja omina lisäyksinäni SQL -lauseet haluttujen tietojen poimintaan. Kevään mittaan olen näistä tehnyt päivittäin koosteita mm. Twitteriin ja toistaiseksi toiminut moitteettomasti. Eläköön avoinrajapinta. R-ohjelman voit ladata R-studio versiona täältä tai sitten voit käyttää vaihtoehtoisesti tätä versiota.

Have fun with R!

Marko

#Koodausohje-esimerkki R-kielellä
#Tässä esimerkissä haetaan THL:n rajapinnasta COVID-19-tapaukset ikäryhmittäin ja tehdään niistä aineisto.

#Paketti datan editoimiseen ja visualisointiin
library(tidyverse)
#Paketti datan lukemiseen
library(jsonlite)
library(sqldf)
library(DBI)
library(data.table)

HUOM VAIHDA AINA ENSIN PÄIVÄMÄÄRÄ
#190620
#100620

#-----------------------------------------
#IKÄRYHMITTÄIN
#----------------------------------------

#Paketti datan editoimiseen ja visualisointiin
library(tidyverse)
#Paketti datan lukemiseen
library(jsonlite)
library(sqldf)
library(DBI)
library(readr)   # Read tabular data.
library(tidyr)   # Data frame tidying functions.
library(dplyr)   # General data frame manipulation.
library(ggplot2) # Flexible plotting.
mydb <- dbConnect(RSQLite::SQLite(), "my-db.sqlite")
#dbDisconnect(mydb)
#unlink("my-db.sqlite")

#otetaan edellispäivän data talteen 
#Luetaan aineisto sisään
 aineisto <- fromJSON("https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?column=ttr10yage-444309")

#puretaan kategoriat paloiksi
 label <- as.data.frame(unlist(aineisto$dataset$dimension$ttr10yage$category$label))
 index <- as.data.frame(unlist(aineisto$dataset$dimension$ttr10yage$category$index))
  
 #Nimetään palaset
 names(label)<-"label"
 names(index)<-"index"
  
 #Laitetana vielä rivinumerot sarakkeiksi, jotta nämä saadaan yhteen.
 label<-rownames_to_column(label)
 index<-rownames_to_column(index)
  
 #Yhdistetään rivinimeä käyttäen
 kategoriat <- index %>% left_join(label,by="rowname")
 
 #otetaan data
 data <- as.data.frame(unlist(aineisto$dataset$value))
 data_old <- as.data.frame(unlist(aineisto$dataset$value))
 
 #Nimetään
 names(data)<-"Tapauksia"
 names(data_old)<-"Tapauksia_edellispvm"

 data<-rownames_to_column(data)
 data_old<-rownames_to_column(data_old)

 data$rowname<-as.numeric(data$rowname)
 data_old$rowname<-as.numeric(data_old$rowname)

 
#Yhdistetään muuhun aineistoon
 dataset_ir_190620 <- kategoriat %>% left_join(data,by=c("index"="rowname"))
 dataset_ir_old <- kategoriat %>% left_join(data_old,by=c("index"="rowname"))

dataset_ir_190620


#VIEDÄÄN TULOKSET KANSIOON

write.table(dataset_ir_190620, file = "C:/...LISÄÄ TÄHÄN OMA POLKUSI/dataset_ir_190620.txt", sep = "\t", col.names = NA, qmethod = "double")
#katsotaan lopuksi tulokset
View(dataset_ir_190620)

#tässä kohtaa voi olla tarvetta hakea aikaisempia tietoja ja se tehdään seuraavalla tavalla
#LUETAAN KOONTI TAKAISIN

dataset_ir_200520 <- read.delim("C:/Users/marko/Dropbox/kuvat/home/Marko/R/koronadataa/dataset_ir_200520.txt")
View(dataset_ir_200520)
#vaihda päivämäärä, jotta saat halutun päivän tiedot tähän vertailuun mukaan

#tämä mikäli, et ole sitä jo tehnyt....
mydb <- dbConnect(RSQLite::SQLite(), "my-db.sqlite")

#ladataan taulut
dbWriteTable(mydb, "dataset_ir_140520", dataset_ir_140520)

#TÄMÄ JA EDELLINEN PÄIVÄ (muuta pvm tekstit oman tarpeesi mukaan)
rsa <- dbSendQuery(mydb, 'SELECT a.label, a.Tapauksia as Tapaukset_190620, b.Tapauksia as Tapaukset_180620, (a.Tapauksia)-(b.Tapauksia) as Muutos_lkm
FROM dataset_ir_190620 a  
LEFT JOIN dataset_ir_180620 b 
ON a.label = b.label')
dbFetch(rsa)

#tai sitten vaikka näin

#RAJOITUSTEN PURUSTA TÄHÄN PÄIVÄÄN 
rsa <- dbSendQuery(mydb, 'SELECT a.label, a.Tapauksia as Tapaukset_190620, b.Tapauksia as Tapaukset_310520, (a.Tapauksia)-(b.Tapauksia) as Muutos_lkm
FROM dataset_ir_190620 a  
LEFT JOIN dataset_ir_310520 b 
ON a.label = b.label')
dbFetch(rsa)

Alla esimerkki, miten tiedot haetaan sukupuolittain.

#-----------------------------------------
#SUKUPUOLITTAIN
#----------------------------------------
#Paketti datan editoimiseen ja visualisointiin
 library(tidyverse)
#Paketti datan lukemiseen
library(jsonlite)
library(sqldf)
library(DBI)

mydb <- dbConnect(RSQLite::SQLite(), "my-db.sqlite")
#dbDisconnect(mydb)
#unlink("my-db.sqlite")


#Luetaan aineisto sisään
 aineisto <- fromJSON("https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?column=sex-444328")

#puretaan kategoriat paloiksi
 label <- as.data.frame(unlist(aineisto$dataset$dimension$sex$category$label))
 index <- as.data.frame(unlist(aineisto$dataset$dimension$sex$category$index))
  
 #Nimetään palaset
 names(label)<-"label"
 names(index)<-"index"
  
 #Laitetana vielä rivinumerot sarakkeiksi, jotta nämä saadaan yhteen.
 label<-rownames_to_column(label)
 index<-rownames_to_column(index)
  
 #Yhdistetään rivinimeä käyttäen
 kategoriat <- index %>% left_join(label,by="rowname")
 
 #otetaan data
 data <- as.data.frame(unlist(aineisto$dataset$value))
 
 #Nimetään
 names(data)<-"Tapauksia"

 data<-rownames_to_column(data)

 data$rowname<-as.numeric(data$rowname)



#Yhdistetään muuhun aineistoon
dataset_sp_190620 <- kategoriat %>% left_join(data,by=c("index"="rowname"))

dataset_sp_190620

write.table(dataset_sp_190620, file = "C:/....TÄHÄN OMA TIEDOSTOSIJAINTISI TULOSTIEDOSTOILLE.../dataset_sp_190620_sukupuolittain.txt", sep = "\t", col.names = NA, qmethod = "double")

#LUETAAN KOONTI TAKAISIN (MIKÄLI TARVETTA...) HUOM. TÄMÄ ON VAIN MALLI...
dataset_sp_190620 <- read.delim("C:/..TÄHÄN OMA TIEDOSTOSIJAINTISI.../dataset_sp_190620_sukupuolittain.txt")
View(dataset_sp_190620)

#ladataan taulut
dbWriteTable(mydb, "dataset_sp_190620", dataset_sp_190620)

#TOIMII
rsa <- dbSendQuery(mydb, 'SELECT a.label, a.Tapauksia as Tapaukset_190620, b.Tapauksia as Tapaukset_180620, (a.Tapauksia)-(b.Tapauksia) as Ero_eiliseen
FROM dataset_sp_190620 a  
LEFT JOIN dataset_sp_180620 b 
ON a.label = b.label')
dbFetch(rsa)

Seuraavaksi katsotaan, miten saadaan ladattua tiedot sairaanhoitopiireittäin.

#-----------------------------------------
#SAIRAANHOITOPIIREITTÄIN
#----------------------------------------
#Paketti datan editoimiseen ja visualisointiin
 library(tidyverse)
#Paketti datan lukemiseen
 library(jsonlite)
library(sqldf)
library(DBI)
mydb <- dbConnect(RSQLite::SQLite(), "my-db.sqlite")
#Luetaan aineisto sisään
 aineisto <- fromJSON("https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?column=hcdmunicipality2020-445222")

#puretaan kategoriat paloiksi
 label <- as.data.frame(unlist(aineisto$dataset$dimension$hcdmunicipality$category$label))
 index <- as.data.frame(unlist(aineisto$dataset$dimension$hcdmunicipality$category$index))
  
 #Nimetään palaset
 names(label)<-"label"
 names(index)<-"index"
  
 #Laitetana vielä rivinumerot sarakkeiksi, jotta nämä saadaan yhteen.
 label<-rownames_to_column(label)
 index<-rownames_to_column(index)
  
 #Yhdistetään rivinimeä käyttäen
 kategoriat <- index %>% left_join(label,by="rowname")
 
 #otetaan data
 data <- as.data.frame(unlist(aineisto$dataset$value))
 
  #Nimetään
 names(data)<-"Tapauksia"
 names(data_old)<-"Tapauksia_edellispvm"
 data<-rownames_to_column(data)
 data_old<-rownames_to_column(data_old)
 data$rowname<-as.numeric(data$rowname)
 data_old$rowname<-as.numeric(data_old$rowname)
 
#Yhdistetään muuhun aineistoon
dataset_shp_190620 <- kategoriat %>% left_join(data,by=c("index"="rowname"))
#dataset <- kategoriat %>% left_join(data,by=c("index"="rowname"))

dataset_shp_190620
#plot(dataset_shp_190620)

write.table(dataset_shp_190620, file = "C:/...TÄHÄN OMA TIEDOSTOSIJAINTISI.../dataset_shp_190620_shp.txt", sep = "\t", col.names = NA, qmethod = "double")

#ja jos on tarvetta niin ladataan vanhaa dataa näin...
#LUETAAN KOONTI TAKAISIN
dataset_shp_050520 <- read.delim("C:/...TÄHÄN OMA TIEDOSTOSIJAINTISI.../dataset_shp_050520_shp.txt")
View(dataset_shp_050520)

#ladataan taulut (jos tarvetta...)
#dbWriteTable(mydb, "dataset_shp_050520", dataset_shp_050520)
#tämä täytyy kyllä tehdä, jotta alla oleva kysely saadaan toimimaan...
dbWriteTable(mydb, "dataset_shp_190620", dataset_shp_190620)

#EILISEEN VERRATTUNA
rsa <- dbSendQuery(mydb, 'SELECT a.label, a.Tapauksia as Tartunnat_190620, b.Tapauksia as Tartunnat_180620, (a.Tapauksia)-(b.Tapauksia) as Ero_edellispäivään
FROM dataset_shp_190620 a  
LEFT JOIN dataset_shp_180620 b 
ON a.label = b.label')
dbFetch(rsa)

#RAJOITUSTEN HÖLLENTÄMINEN 1.6. LÄHTIEN
rsa <- dbSendQuery(mydb, 'SELECT a.label, a.Tapauksia as Tartunnat_190620, b.Tapauksia as Tartunnat_310520, (a.Tapauksia)-(b.Tapauksia) as Muutos_31_5_lähtien
FROM dataset_shp_190620 a  
LEFT JOIN dataset_shp_310520 b 
ON a.label = b.label')
dbFetch(rsa)


#RAJOITUSTEN POISTO - KOULUJEN AVAUS
rsa <- dbSendQuery(mydb, 'SELECT a.label, a.Tapauksia as Tartunnat_190620, b.Tapauksia as Tartunnat_130520, (a.Tapauksia)-(b.Tapauksia) as Muutos_13_5_lähtien
FROM dataset_shp_190620 a  
LEFT JOIN dataset_shp_130520 b 
ON a.label = b.label')
dbFetch(rsa)

Kuntakohtaiseen dataan pääsee käsiksi alla olevan koodin kautta….

#-----------------------------------------
#KUNNITTAIN
#----------------------------------------
#Paketti datan editoimiseen ja visualisointiin
 library(tidyverse)
#Paketti datan lukemiseen
 library(jsonlite)
library(sqldf)
library(DBI)
#Luetaan aineisto sisään
 aineisto <- fromJSON("https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?column=hcdmunicipality2020-445268L")

#puretaan kategoriat paloiksi
 label <- as.data.frame(unlist(aineisto$dataset$dimension$hcdmunicipality$category$label))
 index <- as.data.frame(unlist(aineisto$dataset$dimension$hcdmunicipality$category$index))
  
 #Nimetään palaset
 names(label)<-"label"
 names(index)<-"index"
  
 #Laitetana vielä rivinumerot sarakkeiksi, jotta nämä saadaan yhteen.
 label<-rownames_to_column(label)
 index<-rownames_to_column(index)
  
 #Yhdistetään rivinimeä käyttäen
 kategoriat <- index %>% left_join(label,by="rowname")
 
 #otetaan data
 data <- as.data.frame(unlist(aineisto$dataset$value))
 
 #Nimetään
 names(data)<-"Tapauksia"
 data<-rownames_to_column(data)
 data$rowname<-as.numeric(data$rowname)
 
#Yhdistetään muuhun aineistoon
dataset_kunta_190620 <- kategoriat %>% left_join(data,by=c("index"="rowname"))


#TALLENNETAAN OMAAN TIEDOSTOSIJAINTIIN MYÖHEMPÄÄ KÄYTTÖÄ VARTEN...
write.table(dataset_kunta_190620, file = "C:/...TÄHÄN OMA TIEDOSTOSIJAINTI.../dataset_kunta_190620_kunnittain.txt", sep = "\t", col.names = NA, qmethod = "double")

#KATSOTAAN VIELÄ MILTÄ POIMINTA NÄYTTÄÄ...
dataset_kunta_190620

#LUETAAN KOONTI TAKAISIN, MIKÄLI TARVITSET VANHOJA FILUJA....
dataset_kunta_040520 <- read.delim("C:/...TÄHÄN OMA.../dataset_kunta_040520_kunnittain.txt")
View(dataset_kunta_040520)

#ladataan taulut
#dbWriteTable(mydb, "dataset_kunta_040520", dataset_kunta_040520)
#dbWriteTable(mydb, "dataset_kunta_050520", dataset_kunta_050520)
#dbWriteTable(mydb, "dataset_kunta_060520", dataset_kunta_060520)
#dbWriteTable(mydb, "dataset_kunta_070520", dataset_kunta_070520)
#dbWriteTable(mydb, "dataset_kunta_080520", dataset_kunta_080520)
#dbWriteTable(mydb, "dataset_kunta_090520", dataset_kunta_090520)
#dbWriteTable(mydb, "dataset_kunta_100620", dataset_kunta_100620)
#dbWriteTable(mydb, "dataset_kunta_130520", dataset_kunta_130520)
#dbWriteTable(mydb, "dataset_kunta_010620", dataset_kunta_010620)
dbWriteTable(mydb, "dataset_kunta_190620", dataset_kunta_190620)

#LUODAAN NÄKYMÄ (VIEW) JA TEHDÄÄN VERTAILU EDELLISPÄIVÄÄN

dbExecute(mydb, 'CREATE VIEW dataset_sortattu_kunta_190620a AS SELECT a.label, a.Tapauksia as Tartunnat_190620, b.Tapauksia as Tartunnat_180620, (a.Tapauksia)-(b.Tapauksia) as Lisäys
FROM dataset_kunta_190620 a   
LEFT JOIN dataset_kunta_180620 b 
ON a.label = b.label ORDER BY Lisäys DESC')

#View(dataset_sortattu_kunta_190620)

#TOIMII MUTTA ANTAA SAMAN SARAKDATAN KUIN TÄMÄN PÄIVÄN TUTKI TUTKI
rsa <- dbSendQuery(mydb, 'SELECT * FROM dataset_sortattu_kunta_190620a ORDER BY Lisäys DESC')
dbFetch(rsa)

Ladataan vielä päiväkohtainen data ie. tartunnat päivittäin.

#“An inefficient virus kills its host. A clever virus stays with it.”
#—James Lovelock

#-----------------------------------------
#PÄIVITTÄIN
#----------------------------------------
#Paketti datan editoimiseen ja visualisointiin
 library(tidyverse)
#Paketti datan lukemiseen
 library(jsonlite)
library(sqldf)
library(DBI)
#Luetaan aineisto sisään
 aineisto <- fromJSON("https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?column=dateweek2020010120201231-443702L")

#puretaan kategoriat paloiksi
 label <- as.data.frame(unlist(aineisto$dataset$dimension$dateweek$category$label))
 index <- as.data.frame(unlist(aineisto$dataset$dimension$dateweek$category$index))
  
 #Nimetään palaset
 names(label)<-"label"
 names(index)<-"index"
  
 #Laitetana vielä rivinumerot sarakkeiksi, jotta nämä saadaan yhteen.
 label<-rownames_to_column(label)
 index<-rownames_to_column(index)
  
 #Yhdistetään rivinimeä käyttäen
 kategoriat <- index %>% left_join(label,by="rowname")
 
 #otetaan data
 data <- as.data.frame(unlist(aineisto$dataset$value))
 
 #Nimetään
 names(data)<-"Tapauksia"
 data<-rownames_to_column(data)
 data$rowname<-as.numeric(data$rowname)
 
#Yhdistetään muuhun aineistoon
dataset_day_190620  <- kategoriat %>% left_join(data,by=c("index"="rowname"))

dataset_day_190620

#TALLENNETAAN TIEDOT KANSIOON...

write.table(dataset_day_190620, file = "C:/..TÄHÄN OMA TIEDOSTOSIJAINTISI.../dataset_day_190620_paivittain.txt", sep = "\t", col.names = NA, qmethod = "double")


COVID-19 datan visualisointi

Sain eilen päivitettyä R-ohjelma viimeisimmän version ja tänään puran joitakin COVID-19 tietolähteitä ja teen malliksi muutaman graafin. Can’t wait…

covid -paketti, jonka latasin löytyy täältä: https://kjhealy.github.io/covdata/index.html

Latailin tarvittavat kirjastot ja samalla perehdyin piiitkästä aikaa R-studion saloihin. Täytyy myöhemmässä vaiheessa katsoa vielä tämän paketin data-päivitykset.

Copyright MySci 2020
Tech Nerd theme designed by Siteturner