## Gjennomsnitt hba1c målt sentralt
## ## Datakilder
## gamle data "bdrB4" uploaded fra runEnkelRapport
bdrold <- subset(bdrB4, select = c("hba1c", "yr", "hospid", "age", "gender"))
## Nasjonal data brukes
norgeDT <- ars2018dt1
## Antall pasienter
norgeN <- nrow(norgeDT)
## Utvalg av variabler
valgVar <- c("lab_HbA1cAkerVerdi", "Kjonn", "yr", "hospID", "alder")
## norgeDT[, str(.SD), .SDcols = valgVar]
valgDT <- subset(norgeDT, select = valgVar)
valgDT[.(Kjonn = c("Gutt", "Jente"), to = 1:2), on = "Kjonn", gender := i.to]
valgDT[, Kjonn := NULL]
## gir standard navn
stdNavn <- c("hba1c", "yr", "hospid", "alder", "kjonn")
setnames(valgDT, names(valgDT), stdNavn)
setnames(bdrold, names(bdrold), stdNavn)
## Merge begge
alldt <- rbindlist(list(bdrold, valgDT), use.names = TRUE)
## ## Lage file til raskere upload
## saveRDS(alldt, file.path(dataSti, "all07til18.rds"))
## - - - - - - -ANALYSE - - - - - - -
## ## upload data
## alldt <- readRDS(file.path(dataSti, "all07til18.rds"))
## Tar bort attributes inherits fra SPSS
alldt[] <- lapply(alldt, function(x) {attributes(x) <- NULL; x})
## mean hba1c for hvert år
alldt[, meanAll := round(mean(hba1c, na.rm = TRUE), digits = 1), keyby = .(yr)]
## mean hba1c for all years hver sykehus
## alldt[, meanhbc := round(mean(hba1c, na.rm = TRUE), digits = 1), keyby = .(yr, hospid)]
## Beholder bare en rad på hvert år
norgeTab <- alldt[alldt[, .I[1], by = yr]$V1]
norgeTab[, yr := as.numeric(yr)]
## Velge Lokal sykehus
## subset fra loop data
dtvalg <- subset(alldt, hospid == hosp)
## gjennomsnitt hba1c
## dtvalg[, meanhbc := round(mean(hba1c, na.rm = TRUE), digits = 1), by = yr]
## antall per år
## dtvalg[, N := .N, by = yr]
## dtvalg[, .N, by = yr]
## Beholder bare den første rad per år
## dtplot <- dtvalg[dtvalg[, .I[1], by = yr]$V1]
## dtplot <- dtvalg[, head(.SD, 1), yr] #alternativ med litt treg
dbaggr <- rollup(dtvalg,
j = list(
hba = mean(hba1c, na.rm = TRUE),
n = .N),
by = c("yr", "kjonn"))
## legger totallen dvs. 3. Kjønn er søm flgende:
## 1 = Gutter
## 2 = Jenter
## 3 = Totalt
dbaggr[is.na(kjonn), kjonn := 3]
dbaggr[.(kjonn = 1:3, to = c("Gutter", "Jenter", "Alle")), on = "kjonn", sex := i.to]
## tar bort Grand Total
dbaggr <- dbaggr[!is.na(yr), ]
## konverterer yr til nummeric ellers må bruke group=1
dbaggr[, yr := as.numeric(yr)]
## Plotting
## Farge
col3 <- valgCol[1:3]
## Theme
ptheme <- theme(legend.title = element_blank(),
legend.text = element_text(size = 9),
legend.key = element_rect(fill = "white"),
axis.text = element_text(size = 9, color = "black"), #text for x og y axis
axis.ticks.y = element_blank(),
axis.line.x = element_line(size = 0.5),
axis.line.y = element_blank(),
axis.title.y = element_text(size = 11),
axis.title.x = element_text(size = 11),
panel.background = element_rect(fill = "white"),
panel.border = element_rect(linetype = 1, fill = NA, color = "white"),
panel.grid.minor.x = element_blank(),
panel.grid.major.y = element_line(linetype = 2, color = "grey"))
miny <- round(min(dbaggr$hba, na.rm = TRUE), digits = 1)
maxy <- round(max(dbaggr$hba, na.rm = TRUE), digits = 1)
exty <- (maxy - miny) * .2
plotHbc <- ggplot() +
## linje skal ikke kuttes hvis det er NA
geom_line(data = dbaggr[!is.na(hba), ],
aes(yr, hba, group = sex, color = sex), size = 1) +
geom_line(data = norgeTab, aes(yr, meanAll, color = "Norge"),
linetype = "twodash", size = 1) +
geom_point(data = dbaggr, aes(yr, hba, group = sex, shape = sex), size = 2) +
geom_point(data = norgeTab, aes(yr, meanAll, shape = "Norge"), size = 2) +
scale_x_continuous(breaks = unique(dbaggr$yr)) +
scale_shape_manual(values = c(16, 1, 4, 18),
breaks = c("Gutter", "Jenter", "Alle", "Norge"), ) +
scale_color_manual(values = c(col3, "#FF0033"), breaks = c("Gutter", "Jenter", "Alle", "Norge")) +
scale_y_continuous(breaks = seq(miny, maxy, by = 0.2),
limits = c(miny - exty, maxy + exty)) +
ylab("HbA1c verdi i %") +
xlab(" ") +
ptheme
guttHb <- round(dbaggr[yr == 2018 & kjonn == 1, hba], digits = 1)
guttN <- round(dbaggr[yr == 2018 & kjonn == 1, n])
jenteHb <- round(dbaggr[yr == 2018 & kjonn == 2, hba], digits = 1)
jenteN <- round(dbaggr[yr == 2018 & kjonn == 2, n])
alleHb <- round(dbaggr[yr == 2018 & kjonn == 3, hba], digits = 1)
alleN <- round(dbaggr[yr == 2018 & kjonn == 3, n])
norgeHb <- round(norgeTab[yr == 2018, meanAll], digits = 1)