library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Este trabalho contabiliza o número de vezes em que cada número foi sorteado em um concurso da Mega Sena. Os dados para esta análise foram coletados do site oficial das Loterias Caixa.

Os números sorteados na Mega Sena variam de 1 a 60. Normalmente, são dois sorteios por semana. Seis números são sorteados em cada concurso.

megasena <- read.csv("https://gist.githubusercontent.com/gabrielacaesar/e66a94b049be782e921c038206a28436/raw/90b1f30ac22ab7fc28e5e37c649ec897e037352c/megasena-25abril2019", sep = ",", header = TRUE)

head(megasena)
##   n1 n2 n3 n4 n5 n6
## 1 41  5  4 52 30 33
## 2  9 39 37 49 43 41
## 3 36 30 10 11 29 47
## 4  6 59 42 27  1  5
## 5  1 19 46  6 16  2
## 6 19 40  7 13 22 47

Vamos calcular a frequência de números sorteados em cada momento e, ainda, vamos ordenar pelo número sorteado para depois unirmos em apenas um dataframe.

n1_megasena <- megasena %>%
  group_by(n1) %>%
  summarise(integer = n()) %>%
  arrange(n1)

head(n1_megasena)
## # A tibble: 6 x 2
##      n1 integer
##   <int>   <int>
## 1     1      34
## 2     2      43
## 3     3      27
## 4     4      49
## 5     5      38
## 6     6      40
n2_megasena <- megasena %>%
  group_by(n2) %>%
  summarise(integer = n()) %>%
  arrange(n2)

head(n2_megasena)
## # A tibble: 6 x 2
##      n2 integer
##   <int>   <int>
## 1     1      39
## 2     2      36
## 3     3      40
## 4     4      31
## 5     5      54
## 6     6      39
n3_megasena <- megasena %>%
  group_by(n3) %>%
  summarise(integer = n()) %>%
  arrange(n3)

head(n3_megasena)
## # A tibble: 6 x 2
##      n3 integer
##   <int>   <int>
## 1     1      40
## 2     2      36
## 3     3      29
## 4     4      45
## 5     5      32
## 6     6      32
n4_megasena <- megasena %>%
  group_by(n4) %>%
  summarise(integer = n()) %>%
  arrange(n4)

head(n4_megasena)
## # A tibble: 6 x 2
##      n4 integer
##   <int>   <int>
## 1     1      42
## 2     2      31
## 3     3      24
## 4     4      32
## 5     5      43
## 6     6      33
n5_megasena <- megasena %>%
  group_by(n5) %>%
  summarise(integer = n()) %>%
  arrange(n5)

head(n5_megasena)
## # A tibble: 6 x 2
##      n5 integer
##   <int>   <int>
## 1     1      28
## 2     2      39
## 3     3      39
## 4     4      37
## 5     5      33
## 6     6      40
n6_megasena <- megasena %>%
  group_by(n6) %>%
  summarise(integer = n()) %>%
  arrange(n6)

head(n6_megasena)
## # A tibble: 6 x 2
##      n6 integer
##   <int>   <int>
## 1     1      30
## 2     2      35
## 3     3      40
## 4     4      42
## 5     5      42
## 6     6      39

Vamos juntar todos os dataframes em apenas um arquivo

df_megasena <- cbind(n1_megasena, n2_megasena, n3_megasena, n4_megasena,
                     n5_megasena, n6_megasena)

Agora renomeamos as colunas do novo arquivo

colnames(df_megasena) <- c("n1", "n1_integer", "n2", "n2_integer", "n3", "n3_integer", "n4", "n4_integer", "n5", "n5_integer", "n6", "n6_integer") 

E selecionamos com quais colunas queremos trabalhar

df_final <- df_megasena %>%
  select("n1", "n1_integer", "n2_integer", "n3_integer", "n4_integer",
         "n5_integer", "n6_integer")

Vamos criar uma coluna para somar a frequência de vezes

df_final$total <- df_final$n1_integer + df_final$n2_integer + df_final$n3_integer + df_final$n4_integer + df_final$n5_integer + df_final$n6_integer

Queremos ordenar do número com mais frequência para o menos frequência

Descobrimos que os seis números mais frequentes são: 10 - 5 - 53 - 4 - 23 - 54.

df_final <- df_final %>%
  arrange(desc(total)) %>%
  select("n1", "total")

head(df_final, n = 15)
##    n1 total
## 1  10   245
## 2   5   242
## 3  53   242
## 4   4   236
## 5  23   235
## 6  54   235
## 7  33   232
## 8  24   230
## 9  51   230
## 10 17   227
## 11 42   226
## 12 28   225
## 13 30   225
## 14 52   225
## 15 27   224

Fazemos o download dos dados

write.csv(df_final, "megasena-numeros-sorteados.csv")