library(tidyverse)
set.seed(1)
start <- mdy("01/01/2022")
end <- start + as.difftime(4, units = "days")
days <- seq(from = start, to = end, by = 1)
days <- sample(days, 100, replace = T)
flip <- sample(c("Heads", "Tails"), 100, replace = TRUE)
numbers <- rchisq(100, 30)
df <- tibble(days, numbers, flip)
Eu tenho esse dataframe e gostaria de resumi-lo para cada dia, pegando a soma total dos números para cada lançamento e criando essa proporção, (Cara-Coroa)/(Cara + Coroa) abaixo está um exemplo para um dia específico:
df <- df %>% group_by(days, flip) %>%
summarize(total = sum(numbers)) %>%
ungroup()
> (df[[1,3]]-df[[2,3]])/(df[[1,3]]+df[[2,3]])
[1] -0.4164241
> (df[[3,3]]-df[[4,3]])/(df[[3,3]]+df[[4,3]])
[1] 0.06134484
> (df[[5,3]]-df[[6,3]])/(df[[5,3]]+df[[6,3]])
[1] 0.6067984
> (df[[7,3]]-df[[8,3]])/(df[[7,3]]+df[[8,3]])
[1] -0.2603271
> (df[[9,3]]-df[[10,3]])/(df[[9,3]]+df[[10,3]])
[1] 0.309745
Essas são as proporções que eu gostaria de obter para todos os dias.
A partir do primeiro
df
,embora isso dependa da ordem de
flip
. Para ser um pouco mais resilientes a isso, podemos fazer:Também podemos tentar uma abordagem dinâmica: