Lung cancer cases due to radon in Europe: Difference between revisions

From Opasnet
Jump to navigation Jump to search
(→‎An alternative code for Finland: function summary.bring works!)
mNo edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{variable|moderator=Teemu R|stub=Yes}}
{{variable|moderator=Teemu R|stub=Yes}}
[[Category:Code under inspection]]


== Scope ==
== Scope ==
Line 54: Line 55:
This code uses the summary table approach for obtaining data. The data sources are the same except [[ERF for long-term indoor exposure to radon and lung cancer]] (summary table [[:Category:Exposure-response functions]]) and [[Exposure to indoor radon in Finland]] (summary table [[:Category:Exposures]]).
This code uses the summary table approach for obtaining data. The data sources are the same except [[ERF for long-term indoor exposure to radon and lung cancer]] (summary table [[:Category:Exposure-response functions]]) and [[Exposure to indoor radon in Finland]] (summary table [[:Category:Exposures]]).


<rcode include="page:OpasnetBaseUtils|name:generic">
<rcode include="page:OpasnetBaseUtils|name:generic" variables="
name:show|description:Which exposure parameters do you want to see?|type:checkbox|options:1;Actual population average in Finland;2;Guidance value for new apartments;3;Guidance value for old apartments|default:1;2;3
">


############### Bring parts of summary table
cat("Get data from Opasnet Base.\n")
#  data is the summary table.
summary.bring <- function(data){
pages <- levels(data$Page)
 
out <- op_baseGetData("opasnet_base", pages[1])[, -c(1,2)]
out <- out[out$Observation != "Description", ]
if(nlevels(pages) > 1){
for(i in 2:nlevels(pages)){
out[[i]] <- op_baseGetData("opasnet_base", pages[i])
}}
 
cols <- colnames(out)[!colnames(out) %in% c("Observation", "Result", "Result.Text")]
out$Result <- ifelse(!is.na(out$Result.Text), as.character(out$Result.Text), out$Result)
#print(xtable(out), type = 'html')


out <- out[, colnames(out) != "Result.Text"]
out <- reshape(out, timevar = "Observation", idvar = cols, direction = "wide")
#print(xtable(out), type = 'html')
colnames(out) <- ifelse(substr(colnames(out), 1, 12) == "Result.Text.", substr(colnames(out), 13, 50), colnames(out))
colnames(out) <- ifelse(substr(colnames(out), 1, 7) == "Result.", substr(colnames(out), 8, 50), colnames(out))
#print(xtable(out), type = 'html')
conc <- data[data$Observation != "Description", !colnames(data) %in% c("Result", "Observation")]
#print(xtable(conc), type = 'html')
temp <- reshape(conc, idvar = "Page", timevar = "Index", direction = "wide")
temp <- temp[, colnames(temp) != "Page"]
colnames(temp) <- ifelse(substr(colnames(temp), 1, 12) == "Result.Text.", substr(colnames(temp), 13, 50), colnames(temp))
out <- merge(temp, out)
return(out)
}
##########
cat("Get data from Opasnet Base.\n")
library(OpasnetBaseUtils)
library(OpasnetBaseUtils)
library(xtable)
library(xtable)
conc <- op_baseGetData("opasnet_base", "Op_en1619")[, -c(1,2)] # Summary table Category:Exposures
#pop <- op_baseGetData("opasnet_base", "Op_en4691", include = 1367, exclude = c(1435, 1436))[, -c(1,2)] #
erf <- op_baseGetData("opasnet_base", "Op_en1914")[, -c(1,2)] # Summary table Category:Exposure-response functions


out <- summary.bring(conc)
conc <- summary.bring("Op_en1619")[show, ] # Summary table Category:Exposures
erf <- summary.bring("Op_en1914") # Summary table Category:Exposure-response functions
pop <- summary.bring("Op_en2154") # Summary table Category:Population characteristics
bg <- summary.bring("Op_en1620") # Summary table Category:Health effects


print(xtable(out), type = 'html')
cat("Adjust data for the model.\n")


erfs <- summary.bring(erf)
print(xtable(conc), type = 'html')
print(xtable(erfs), type = 'html')
print(xtable(erf), type = 'html')
print(xtable(pop), type = 'html')
print(xtable(bg), type = 'html')


out <- merge(conc, erf)
out <- merge(out, pop)
out <- merge(out, bg)


cat("Adjust data for the model.\n")
out$ERF <- as.numeric(substr(out$ERF, 1, 6))
out$Exposure <- as.numeric(substr(out$Exposure, 1, 3))
out$Response <- as.numeric(out$Response)


#conc <- conc[conc$Page == "Op_en5450", ] # Slice exposures to radon
cat("Run the actual model.\n")
#conc


countries <- c("Austria", "Belgium", "Bulgaria", "Switzerland", "Cyprus", "Czech Republic", "Germany", "Denmark", "Estonia", "Spain",
out <- dropall(out)
"Finland", "France", "Greece", "Hungary", "Ireland", "Iceland", "Italy", "Lithuania", "Luxembourg", "Latvia", "Malta", "Netherlands",
tst <- rep(TRUE, ncol(out)) # tst: are all values in a column the same?
"Norway", "Poland", "Portugal", "Romania", "Sweden", "Slowenia", "Slovakia", "United Kingdom")
for(i in 1:ncol(out)){tst[i] <- nlevels(as.factor(out[, i])) == 1}
levels(pop[,"CountryID"]) <- countries #Country IDs converted to names for compatibility
print(xtable(t(out[1, tst])), type = 'html')
colnames(pop)[4] <- "Country"
colnames(pop)[7] <- "Population"


cat("Run the actual model.\n")
out$Out <- (out$ERF - 1) / out$ERF * out$Exposure * out$Response * out$Amount / 100000
for(i in 1:ncol(out)){tst[i] <- nlevels(as.factor(out[, i])) == 1}
print(xtable(out[, !tst]), type = 'html')


concarray <- DataframeToArray(conc)
popxconc <- IntArray(pop, concarray, "Concentration")#[1:1000,,,]
erfarray <- DataframeToArray(erf[,c("obs","Result")])
popxconcxerf <- IntArray(popxconc, erfarray, "ERF")
lungmortality <- data.frame(popxconcxerf[,c("obs","Country","policy","Year","Age","Sex")], Result = popxconcxerf[,"ERF"] * 58.2 *
popxconcxerf[,"Concentration"] / 100 * popxconcxerf[, "Population"] / 100000)
</rcode>
</rcode>



Latest revision as of 10:58, 26 August 2013

Scope

Mortality due to indoor radon concentrations.

  • Spatial: Europe
  • Temporal: years 2010-2050

Definition

  • Lung cancer cases calculated from radon concentration using <math>cases = relative risk * background rate of cases * concentration * population</math>. RR taken from HEIMTSA and INTARESE (Darby 2004; Darby 2005).
    • Background rate of new lung cancers is assumed constant for the whole Europe: 58.2 cases per 100,000 population (Globocan 2008, crude rate).
    • Linear no threshold model assumed.
    • In a given iteration, radon concentrations are assumed equal in all residences in a country.

Data

Dependencies

Unit

cases per year

Formula

+ Show code

An alternative code for Finland

This code uses the summary table approach for obtaining data. The data sources are the same except ERF for long-term indoor exposure to radon and lung cancer (summary table Category:Exposure-response functions) and Exposure to indoor radon in Finland (summary table Category:Exposures).

Which exposure parameters do you want to see?:
Actual population average in Finland
Guidance value for new apartments
Guidance value for old apartments

+ Show code

Result

{{#opasnet_base_link:Op_en4715}}


Lung cancer cases in Europe due to indoor radon in residences (mean and 95% confidence interval).
Year
Policy 2010 2020 2030 2050
BAU 42691 (22042-95542) 51138 (24733-111979) 57618 (25785-137181) 62461 (27023-143632)
All NA 53385 (25402-130453) 68338 (28863-171718) 81873 (31372-239696)
Biomass NA NA NA 81849 (32497-218247)
Insulation NA NA NA 80534 (32445-236962)
Renovation NA NA NA 94075 (35396-288323)
Lung cancer cases attributable to indoor radon in residences in Europe, year 2010.
Country of observation Mean SD
Austria 1105 1146
Belgium 857 796
Bulgaria 303 382
Switzerland 1636 2835
Cyprus 10 14
Germany 4754 4305
Denmark 382 408
Estonia 222 239
Spain 8245 15249
Finland 805 792
France 8204 12176
Greece 857 977
Hungary 1583 1985
Ireland 533 580
Italy 5035 5117
Lithuania 223 233
Luxembourg 68 64
Latvia 229 289
Malta 43 50
Netherlands 504 338
Norway 566 667
Poland 2175 1864
Portugal 1183 1208
Romania 1233 1357
Sweden 1353 1475
Slovakia 586 661
Total 42691

See also

Keywords

References


Related files

<mfanonymousfilelist></mfanonymousfilelist>