---
title: "Matrix analysis"
output: html_notebook
---



```{r}
getwd()
dt_allMats = readRDS(file = "MatricesBRMexUSSP.rds")
dt_allMats
# dt_allMats = rbindlist(list(dt_BR, dt_Mex,dt_Sp, dt_US))
# dt_allMats[, AgeC:=factor(AgeC, levels = names(matrices$Brazil))]
# dt_allMats[, AgeP:=factor(AgeP, levels = names(matrices$Brazil))]

library(ggplot2)
library(colorspace)
ggplot(dt_allMats, aes(x = AgeC, y = AgeP, fill = value)) +
  #geom_tile(aes(fill = value)) + 
  geom_raster(interpolate = FALSE) +
  theme_classic(12) +  
  scale_fill_continuous_divergingx(palette = "RdBu", name = NULL) +
  theme(axis.text.x = element_text(angle = 90)) +
  scale_x_discrete(name = NULL) +
  scale_y_discrete(name = NULL) +
  facet_wrap(~type)

```

```{r}

library(data.table)
AgeBeg = seq(0,80,5)
AgeEnd = c(seq(4,79,5),100)
factAge = levels(dt_allMats$AgeP)

AgeDistrib = data.table(factAge = factAge, AgeBeg = AgeBeg, AgeEnd = AgeEnd)

#Population size per age group


#for each individual in the pool compute its contact based on the matrix
a = 5
mat = dt_allMats[type == "Mexico"]

mat = merge(mat,AgeDistrib, by.x ="AgeP", by.y="factAge")
mat = merge(mat,AgeDistrib, by.x ="AgeC", by.y="factAge")

mat[a>=AgeBeg.x & a <AgeEnd.x]
mat[a>=AgeBeg.x & a <AgeEnd.x, cumVal := cumsum(value)]
max = mat[a>=AgeBeg.x & a <AgeEnd.x, max(cumVal)]
draw = runif(1, min = 0, max = max)
cnt = mat[a>=AgeBeg.x & a <AgeEnd.x & cumVal < draw, .SD[.N]]

data.table(AgeP = a, AgeC = runif(1,min = cnt$AgeBeg.x, max = cnt$AgeEnd.y))

#build the matrix from the contact list



```

