library(tidyverse)
library(glue)
day_before_yesterday <-
tibble::tribble(
~hour, ~macAddress, ~bad, ~total, ~pct_bad,
"2026-04-28 00:00:00", "840d8ea81a38", 87L, 3005L, 0.0289517470881864,
"2026-04-28 00:00:00", "dc4f2260c2a7", 170L, 3004L, 0.0565912117177097,
"2026-04-28 01:00:00", "840d8ea81a38", 101L, 3004L, 0.0336218375499334,
"2026-04-28 01:00:00", "dc4f2260c2a7", 175L, 3005L, 0.0582362728785358,
"2026-04-28 02:00:00", "840d8ea81a38", 95L, 3004L, 0.031624500665779,
"2026-04-28 02:00:00", "dc4f2260c2a7", 158L, 3004L, 0.0525965379494008,
"2026-04-28 03:00:00", "840d8ea81a38", 89L, 3004L, 0.0296271637816245,
"2026-04-28 03:00:00", "dc4f2260c2a7", 192L, 3004L, 0.0639147802929427,
"2026-04-28 04:00:00", "840d8ea81a38", 101L, 3004L, 0.0336218375499334,
"2026-04-28 04:00:00", "dc4f2260c2a7", 176L, 3004L, 0.0585885486018642,
"2026-04-28 05:00:00", "840d8ea81a38", 109L, 3005L, 0.0362728785357737,
"2026-04-28 05:00:00", "dc4f2260c2a7", 161L, 3004L, 0.053595206391478,
"2026-04-28 06:00:00", "840d8ea81a38", 105L, 3004L, 0.0349533954727031,
"2026-04-28 06:00:00", "dc4f2260c2a7", 180L, 3004L, 0.0599201065246338,
"2026-04-28 07:00:00", "840d8ea81a38", 99L, 3004L, 0.0329560585885486,
"2026-04-28 07:00:00", "dc4f2260c2a7", 169L, 3005L, 0.0562396006655574,
"2026-04-28 08:00:00", "840d8ea81a38", 97L, 3004L, 0.0322902796271638,
"2026-04-28 08:00:00", "dc4f2260c2a7", 155L, 3004L, 0.0515978695073236,
"2026-04-28 09:00:00", "840d8ea81a38", 89L, 3005L, 0.0296173044925125,
"2026-04-28 09:00:00", "dc4f2260c2a7", 184L, 3004L, 0.0612516644474035,
"2026-04-28 10:00:00", "840d8ea81a38", 109L, 3005L, 0.0362728785357737,
"2026-04-28 10:00:00", "dc4f2260c2a7", 178L, 3005L, 0.059234608985025,
"2026-04-28 11:00:00", "840d8ea81a38", 83L, 3004L, 0.02762982689747,
"2026-04-28 11:00:00", "dc4f2260c2a7", 173L, 3004L, 0.057589880159787,
"2026-04-28 12:00:00", "840d8ea81a38", 101L, 3004L, 0.0336218375499334,
"2026-04-28 12:00:00", "dc4f2260c2a7", 205L, 3004L, 0.0682423435419441,
"2026-04-28 13:00:00", "840d8ea81a38", 100L, 3004L, 0.033288948069241,
"2026-04-28 13:00:00", "dc4f2260c2a7", 191L, 3004L, 0.0635818908122503,
"2026-04-28 14:00:00", "840d8ea81a38", 95L, 3005L, 0.0316139767054908,
"2026-04-28 14:00:00", "dc4f2260c2a7", 165L, 3005L, 0.0549084858569052,
"2026-04-28 15:00:00", "840d8ea81a38", 96L, 3004L, 0.0319573901464714,
"2026-04-28 15:00:00", "dc4f2260c2a7", 151L, 3004L, 0.0502663115845539,
"2026-04-28 16:00:00", "840d8ea81a38", 91L, 3004L, 0.0302929427430093,
"2026-04-28 16:00:00", "dc4f2260c2a7", 172L, 3004L, 0.0572569906790945,
"2026-04-28 17:00:00", "840d8ea81a38", 99L, 3005L, 0.0329450915141431,
"2026-04-28 17:00:00", "dc4f2260c2a7", 172L, 3004L, 0.0572569906790945,
"2026-04-28 18:00:00", "840d8ea81a38", 104L, 3004L, 0.0346205059920107,
"2026-04-28 18:00:00", "dc4f2260c2a7", 167L, 3005L, 0.0555740432612313,
"2026-04-28 19:00:00", "840d8ea81a38", 87L, 3004L, 0.0289613848202397,
"2026-04-28 19:00:00", "dc4f2260c2a7", 204L, 3004L, 0.0679094540612517,
"2026-04-28 20:00:00", "840d8ea81a38", 99L, 2996L, 0.0330440587449933,
"2026-04-28 20:00:00", "dc4f2260c2a7", 206L, 2997L, 0.0687354020687354,
"2026-04-28 21:00:00", "840d8ea81a38", 95L, 3004L, 0.031624500665779,
"2026-04-28 21:00:00", "dc4f2260c2a7", 216L, 3004L, 0.0719041278295606,
"2026-04-28 22:00:00", "840d8ea81a38", 100L, 3004L, 0.033288948069241,
"2026-04-28 22:00:00", "dc4f2260c2a7", 204L, 3004L, 0.0679094540612517,
"2026-04-28 23:00:00", "840d8ea81a38", 101L, 3005L, 0.0336106489184692,
"2026-04-28 23:00:00", "dc4f2260c2a7", 204L, 3004L, 0.0679094540612517
)
today <- tibble::tribble(
~hour, ~macAddress, ~bad, ~total, ~pct_bad,
"2026-04-30 00:00:00", "840d8ea81a38", 87L, 3004L, 0.0289613848202397,
"2026-04-30 00:00:00", "dc4f2260c2a7", 192L, 3004L, 0.0639147802929427,
"2026-04-30 01:00:00", "840d8ea81a38", 91L, 3005L, 0.0302828618968386,
"2026-04-30 01:00:00", "dc4f2260c2a7", 173L, 3004L, 0.057589880159787,
"2026-04-30 02:00:00", "840d8ea81a38", 102L, 3004L, 0.0339547270306258,
"2026-04-30 02:00:00", "dc4f2260c2a7", 170L, 3004L, 0.0565912117177097,
"2026-04-30 03:00:00", "840d8ea81a38", 94L, 2988L, 0.0314591700133869,
"2026-04-30 03:00:00", "dc4f2260c2a7", 182L, 2990L, 0.0608695652173913,
"2026-04-30 04:00:00", "840d8ea81a38", 17L, 498L, 0.034136546184739,
"2026-04-30 04:00:00", "dc4f2260c2a7", 31L, 497L, 0.062374245472837,
"2026-04-30 05:00:00", "840d8ea81a38", 26L, 895L, 0.0290502793296089,
"2026-04-30 05:00:00", "dc4f2260c2a7", 70L, 895L, 0.0782122905027933,
"2026-04-30 06:00:00", "840d8ea81a38", 33L, 1194L, 0.0276381909547739,
"2026-04-30 06:00:00", "dc4f2260c2a7", 193L, 2987L, 0.0646133244057583,
"2026-04-30 07:00:00", "840d8ea81a38", 80L, 2094L, 0.0382043935052531,
"2026-04-30 07:00:00", "dc4f2260c2a7", 51L, 702L, 0.0726495726495727,
"2026-04-30 08:00:00", "840d8ea81a38", 95L, 3005L, 0.0316139767054908,
"2026-04-30 08:00:00", "dc4f2260c2a7", 151L, 2262L, 0.0667550839964633,
"2026-04-30 09:00:00", "840d8ea81a38", 92L, 2926L, 0.0314422419685578,
"2026-04-30 09:00:00", "dc4f2260c2a7", 211L, 2983L, 0.0707341602413677,
"2026-04-30 10:00:00", "840d8ea81a38", 98L, 3004L, 0.0326231691078562,
"2026-04-30 10:00:00", "dc4f2260c2a7", 199L, 3005L, 0.0662229617304493,
"2026-04-30 11:00:00", "840d8ea81a38", 98L, 3005L, 0.03261231281198,
"2026-04-30 11:00:00", "dc4f2260c2a7", 218L, 3005L, 0.0725457570715474,
"2026-04-30 12:00:00", "840d8ea81a38", 93L, 3004L, 0.0309587217043941,
"2026-04-30 12:00:00", "dc4f2260c2a7", 217L, 3004L, 0.072237017310253,
"2026-04-30 13:00:00", "840d8ea81a38", 91L, 3005L, 0.0302828618968386,
"2026-04-30 13:00:00", "dc4f2260c2a7", 210L, 3004L, 0.0699067909454061,
"2026-04-30 14:00:00", "840d8ea81a38", 87L, 3004L, 0.0289613848202397,
"2026-04-30 14:00:00", "dc4f2260c2a7", 214L, 3004L, 0.0712383488681758,
"2026-04-30 15:00:00", "840d8ea81a38", 97L, 3004L, 0.0322902796271638,
"2026-04-30 15:00:00", "dc4f2260c2a7", 211L, 3004L, 0.0702396804260985,
"2026-04-30 16:00:00", "840d8ea81a38", 92L, 3004L, 0.0306258322237017,
"2026-04-30 16:00:00", "dc4f2260c2a7", 223L, 3005L, 0.0742096505823627,
"2026-04-30 17:00:00", "840d8ea81a38", 100L, 3004L, 0.033288948069241,
"2026-04-30 17:00:00", "dc4f2260c2a7", 205L, 3004L, 0.0682423435419441,
"2026-04-30 18:00:00", "840d8ea81a38", 74L, 2182L, 0.0339138405132906,
"2026-04-30 18:00:00", "dc4f2260c2a7", 427L, 2982L, 0.143192488262911,
"2026-04-30 19:00:00", "840d8ea81a38", 100L, 3004L, 0.033288948069241,
"2026-04-30 19:00:00", "dc4f2260c2a7", 139L, 3004L, 0.046271637816245,
"2026-04-30 20:00:00", "840d8ea81a38", 86L, 2877L, 0.0298922488703511,
"2026-04-30 20:00:00", "dc4f2260c2a7", 218L, 2860L, 0.0762237762237762,
"2026-04-30 21:00:00", "840d8ea81a38", 95L, 2982L, 0.0318578135479544,
"2026-04-30 21:00:00", "dc4f2260c2a7", 166L, 2982L, 0.0556673373574782,
"2026-04-30 22:00:00", "840d8ea81a38", 105L, 3005L, 0.0349417637271215,
"2026-04-30 22:00:00", "dc4f2260c2a7", 220L, 3005L, 0.0732113144758735,
"2026-04-30 23:00:00", "840d8ea81a38", 98L, 2968L, 0.0330188679245283,
"2026-04-30 23:00:00", "dc4f2260c2a7", 170L, 2877L, 0.0590893291623219
)
for (sensor in c("dc4f2260c2a7", "840d8ea81a38")) {
print(glue::glue("Sensor {sensor} error rate different?"))
today_sensor <- today %>% filter(macAddress == sensor)
day_before_yesterday_sensor <- day_before_yesterday %>% filter(macAddress == sensor)
print(prop.test(
x=c(sum(day_before_yesterday_sensor$bad), sum(today_sensor$bad)),
n=c(sum(day_before_yesterday_sensor$total), sum(today_sensor$total))
))
}