Ero sivun ”Ympäristöterveysindikaattori” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
Rivi 217: Rivi 217:


<rcode>
<rcode>
# This is code Op_fi5810/ on page [[Ympäristöterveysindikaattori]].
# Vanha versio käytti suoraan CREATE TABLE ja INSERT INTO. Uusi versio käyttää peaJdbcWrite.
library(pea)
library(pea)
# library(RODBC) # Tätä ei kai tarvita JDBC-yhteyksissä
library(tcltk2)
library(tcltk2)
library(rvest) # For html import
library(rvest) # For html import


######Odbc did not work
# Fetch data from Yhteistyötilat.
# help(peaOdbcConnect)
# con <- peaOdbcConnect("common")
# odbcGetInfo(con)
# sqlQuery(con, "select * from public.vaesto limit 5")
 
con <- peaJdbcConnect("common") # Tässä kohdassa kysytään käyttäjätunnus ja salasana
 
#View(dbGetQuery(con, "select * from pg_catalog.pg_tables where schemaname = 'sotkanet_lataus';"))
#View(dbGetQuery(con, "select distinct schemaname from pg_catalog.pg_tables;")) # Listaa skeemat
#koo <- peaGetKoodisto('d_alue_2_sote')$data # Ei tarvitakaan koska oikeat aluekoodit ovat datassa.
 
dat <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/SLHFAg"))[[3]] # Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo
dat <- html_table(read_html("https://yhteistyotilat.fi/wiki08/x/SLHFAg"))[[3]] # Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo
dat <- data.frame(
dat <- data.frame(
#  ID = 1:nrow(dat), # Primary key not needed if peaJdbcWrite used.
   Vuosi = 2015,
   Vuosi = 2015,
   Alue = dat$Alue,
   Alue = dat$Alue,
Rivi 243: Rivi 233:
   Mittari = 678,
   Mittari = 678,
   Mittarin_arvo = dat[[7]],
   Mittarin_arvo = dat[[7]],
   Paivamaara = "30.5.2018",
   Paivamaara = "31.5.2018",
   stringsAsFactors = FALSE
   stringsAsFactors = FALSE
)
)


dbSendQuery( # Create new table indikaattori_678.
con <- peaJdbcConnect("common") # Tässä kohdassa kysytään käyttäjätunnus ja salasana
  con,
  "CREATE TABLE sotkanet_lataus.indikaattori_678 (
    ID integer PRIMARY KEY,
    Vuosi integer,
    Alue text,
    Aluekoodi integer,
    Sukupuoli integer,
    Mittari integer,
    Mittarin_arvo double precision,
    Paivamaara text
  );
  GRANT SELECT ON TABLE sotkanet_lataus.indikaattori_678 TO public_sotkanet_reader;
  COMMENT ON TABLE sotkanet_lataus.indikaattori_678 IS 'Pienhiukkaspitoisuuden väestöpainotettu vuosikeskiarvo (ug/m3)';"
)
 
# Kirjoitetaan datat tauluun


dbSendQuery(
# Useful queries that you may need.
  con,
# View(dbGetQuery(con, "select * from pg_catalog.pg_tables where schemaname = 'sotkanet_lataus';"))
  paste(
# View(dbGetQuery(con, "select distinct schemaname from pg_catalog.pg_tables;")) # Listaa skeemat
    "INSERT INTO sotkanet_lataus.indikaattori_678 ",
# koo <- peaGetKoodisto('d_alue_2_sote')$data # Kuntien ja maakuntien aluekoodit.
    "(ID, Vuosi, Alue, Aluekoodi, Sukupuoli, Mittari, Mittarin_arvo, Paivamaara) VALUES \n",
# d_alue_2_sote sisältää HE2017-esityksen mukaiset maakunnat, d_alue_2 puolestaan 2018 voimassa olleet.
    paste("(", dat$ID,",",dat$Vuosi, ",'",dat$Alue, "',", dat$Aluekoodi, ",",dat$Sukupuoli, ",",
          dat$Mittari,",", dat$Mittarin_arvo,",'", dat$Paivamaara,"')",sep="", collapse=",\n"),
    ";",
    sep=""
  )
)
# Yllä oleva koodi tuotti virheen
# Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ",  :
# Unable to retrieve JDBC result set for INSERT INTO sotkanet_lataus.indikaattori_678 (ID, Vuosi, Alue, Aluekoodi, Sukupuoli, Mittari, Mittarin_arvo, 'Paivamaara') VALUES
# (1,2015,'HE-maakunta',1,4,678,6.4,'30.5.2018'), ...
# Ehkä ongelmana oli primary keyn puute tai ääkköset Päivämääräsarakkeessa. Näillä muutoksilla kuitenkin toimi.


# Ei tarvita tätä enää koska taulu luotiin uudestaan oikein.
# Luodaan taulu ja kirjoitetaan datat siihen.
# dbSendQuery(con, "ALTER TABLE sotkanet_lataus.indikaattori_678 ALTER COLUMN Alue TYPE text;")
# Taulun nimi on muotoa indikaattori_XXXX, jossa XXXX  on indikaattorin Sotkanet_id.


#kirjoitetaan taulu kokonaisuudessaan MUTTA EI TOIMI KOSKA MINULLA ILMEISESTI ON VANHA Pea ja peaJdbcWrite puuttuu.
peaJdbcWrite(
peaJdbcWrite(
   con,
   con,

Versio 31. toukokuuta 2018 kello 06.49




Ympäristöterveysindikaattori on elinympäristön tiettyä ominaisuutta mittaava asia, joka kertoo ympäristön terveellisyydestä ihmiselle.

Kysymys

Mitkä ovat hyödyllisiä indikaattoreita Suomen ympäristöterveystilanteen seuraamiseksi ja parantamiseksi?

Vastaus

Perustelut

Syykaavio

+ Näytä koodi

Sisäilma kouluissa

Kouluterveyskysely tuottaa jotakin tietoa myös sisäilmasta, oppimisympäristöstä yleensä ja oppilaiden raportoimista yleisistä oireista. Katso lisätietoa näistä linkeistä:


+ Näytä koodi

Indikaattorien lataus Sotkanettiin

+ Näytä koodi

Katso myös