+ Näytä koodi- Piilota koodi
library(sorvi)
library(OpasnetUtils)
library(ggplot2)
objects.latest('Op_fi3907', code_name = 'alusta') # [[Suomen kunnat]], ovariable kunnat.
objects.latest('Op_fi2759', code_name = 'alusta') # [[Radon sisäilmassa]], ovariable radonpit.
rr.radon <- 1.0016
rr.tupakka <- 20
tausta.altistus <- 5
tausta.sairastuvuus <- data.frame( Maakunta = rep(c("Uusimaa", "Itä-Uusimaa", "Varsinais-Suomi", "Satakunta", "Kanta-Häme",
"Pirkanmaa", "Päijät-Häme", "Kymenlaakso", "Etelä-Karjala", "Etelä-Savo", "Itä-Savo", "Pohjois-Karjala", "Pohjois-Savo",
"Keski-Suomi", "Pohjanmaa", "Vaasa", "Keski-Pohjanmaa", "Pohjois-Pohjanmaa", "Kainuu", "Länsi-Pohja", "Lappi", "Ahvenanmaa", "Koko maa"), 2),
Sukupuoli = (rep( c("Miehet", "Naiset"), each = 23)), Sairastuvuus = c(29.5, 29.5, 26.3, 30.2, 30.3, 26.5, 26.9, 26.6, 29.0, 26.1, 28.7, 29.0, 26.7, 24.7, 26.1, 26.1, 29.8, 30.9, 28.3, 33.7, 34.3, 27.9, 28.2, 11.8, 11.8, 9.2, 7.7, 9.0, 7.7, 7.7, 9.5, 7.2, 7.4, 6.6, 5.8, 5.4, 6.0, 5.9, 8.7, 9.3, 8.7, 7.9, 10.1, 11.3, 13.9, 8.8))
tupakoivat <- data.frame(Sukupuoli = rep(c("Miehet", "Naiset"), 2), Tupakoivien.osuus = rep(c(0.22, 0.16), 2), Tupakka = rep(c("Kyllä", "Ei"), each = 2))
out <- merge(out, tausta.sairastuvuus)
out <- merge(out, tupakoivat)
out$Asukkaita <- out$Asukkaita/2 * ifelse(out$Tupakka == "Kyllä", out$Tupakoivien.osuus, 1-out$Tupakoivien.osuus)
out$Sairastuvuus <- out$Sairastuvuus * (1 - out$Tupakoivien.osuus * (rr.tupakka - 1) / (out$Tupakoivien.osuus * (rr.tupakka - 1) +1))
out$Kokonaisvaikutus <- exp(log(rr.tupakka)*ifelse(out$Tupakka == "Kyllä", 1,0) + log(rr.radon)*out$Radon)
out$Radonvaikutus <- out$Kokonaisvaikutus - exp(log(rr.tupakka)*ifelse(out$Tupakka == "Kyllä", 1,0))
out$Radonvaikutus <- out$Radonvaikutus * out$Sairastuvuus/100000 * out$Asukkaita
out$Kokonaisvaikutus <- out$Kokonaisvaikutus * out$Sairastuvuus/100000 * out$Asukkaita
oprint(out[1:20, ])
print("Yksikköriski: tapauksia tuhatta asukasta kohti vuodessa")
temp <- as.data.frame(as.table(tapply(out$Radonvaikutus/out$Asukkaita, list(out$Maakunta, out$Tupakka, out$Talo), sum)/n))
temp <- temp[!is.na(temp$Freq), ]
#head(temp)
temp$Freq <- temp$Freq*1000
colnames(temp) <- c("Maakunta", "Tupakka", "Talotyyppi", "Riski")
oprint(temp)
print("Radonin aiheuttama lisäriski, tapausta vuodessa")
oprint(as.data.frame(as.table(((tapply(out$Radonvaikutus, list(out$Talo, out$Tupakka), sum)/n)))))
ggplot(out, aes(x = Maakunta, weight = Kokonaisvaikutus, fill = Tupakka)) + geom_bar(position = "stack") # position = "dodge"
out$Radonvaikutus <- ifelse(out$Radonvaikutus < 0, 0, out$Radonvaikutus)
out$Radonsata <- round(as.numeric(as.character(out$Radon)), -2)
ggplot(out, aes(x = Radon, weight = Radonvaikutus)) + geom_density(alpha = 1)
ggplot(out, aes(x = Radonsata, weight = Radonvaikutus, fill = Talo)) + geom_bar(position = "stack")
###########################################################
# (C) 2011 Leo Lahti <leo.lahti[at]iki.fi> All rights reserved.
# License: FreeBSD, http://en.wikipedia.org/wiki/BSD_licenses
# Tama esimerkki on testattu sorvi-paketin versiolla 0.1.23
# Esimerkki Suomen kuntatason vaestonkasvutilastojen (Tilastokeskus)
# visualisoinnista Maanmittauslaitoksen karttadatalla (vuonna 2010)
###############################################
# Lue Suomen kuntarajat SpatialPolygon-muodossa
# (C) Maanmittauslaitos 2011
# http://www.maanmittauslaitos.fi/aineistot-palvelut/digitaaliset-tuotteet/ilmaiset-aineistot/hankinta
#LoadData(MML)
#sp <- MML[["1_milj_Shape_etrs_shape"]][["kunta1_p"]]
sp <- LoadMML(data.id = "kunta1_p", resolution = "1_milj_Shape_etrs_shape")
#################################################
# Lue kuntatason vaestonkasvutiedot tilastokeskuksen StatFin-tietokannasta
# http://www.stat.fi/tup/statfin/index.html
# PC Axis-muodossa
px <- statfin.px("vrm/synt/080_synt_tau_203.px")
# statfin.px-funktio käyttää soRvin read.px-funktiota hakemaan dataa URLista, joka alkaa "http://pxweb2.stat.fi/database/StatFin/"
# URLin loppuosa pitää antaa statfin.px:lle parametrina.
# Poimi taulukosta halutut tiedot
# pxs <- subset(as.data.frame(px), Väestönmuutos.ja.väkiluku == "Luonnollinen väestönlisäys" & Vuosi == year)
# pxs <- subset(as.data.frame(px), Väestönmuutos.ja.väkiluku == parameter & Vuosi == year)
# Putsaa data
# vaestonkasvu <- preprocess.px(pxs)
# head(vaestonkasvu)
################################################
vaestonkasvu <- out[out$Talo == talo & out$Tupakka == tupakka, ]
vaestonkasvu <- as.data.frame(as.table(tapply(vaestonkasvu[, vaste], list(vaestonkasvu$Kunta), sum)/n))
colnames(vaestonkasvu) <- c("Kunta", "Vaste")
head(vaestonkasvu)
vaestonkasvu[is.na(vaestonkasvu)] <- 0
##############################################
# Lisaa tiedot karttaobjektiin
sp@data$vaestonkasvu <- vaestonkasvu$Vaste[match(sp$Kunta.FI, vaestonkasvu$Kunta)]
# Korvaa puuttuvat arvot nollalla
sp[["vaestonkasvu"]][is.na(sp[["vaestonkasvu"]])] <- 0
#colnames(out)[vaste]
#vaestonkasvu$Vaste
################################################
# Maarittele varipaletti
my.palette <- colorRampPalette(c("white", "red"), space = "rgb") # , "blue"
ncol <- 40 # Number of colors
#################################################
# Piirra kuva
varname <- "vaestonkasvu"
int <- max(abs(vaestonkasvu$Vaste))
int
q <- spplot(sp, varname,
col.regions = my.palette(ncol),
main = paste(colnames(out)[vaste], talo, "Tupakointi: ", tupakka, sep = ", "),
colorkey = TRUE,
lwd = .4,
col = "black",
at = seq(0, 0 + int, length = ncol)
)
print(q)
| |