O objetivo desta análise é identificar quais foram os números mais frequentes nos sorteios da Mega Sena.
Caso você ainda não tenha instalado os pacotes abaixo, você precisa rodar esse código abaixo, que usa a função install.packages()
.
install.packages("tidyverse")
install.packages("openxlsx")
Em seguida, precisamos carregar os pacotes que serão usados na análise com a função library()
.
library(tidyverse)
library(openxlsx)
link para o download: http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_megase.zip
converter os dados em algum site para CSV ou Excel
como este: http://www.convertcsv.com/html-table-to-csv.htm
abrir no Excel para deletar erros, como linhas apenas com o nome da UF
Para importar o arquivo do TSE, informamos onde está o arquivo. Neste caso, o arquivo está na pasta “Downloads”.
Isso vai de computador para computador. O arquivo XLSX está na pasta “Downloads”.
setwd("~/Downloads/")
Importamos o nosso arquivo XLSX.
megasena <- read.xlsx("megasena.xlsx")
Criamos um novo arquivo chamado “megasena_df”, criado com base no arquivo “megasena”. Logo depois, usamos a função separate()
para separar o conteúdo da coluna “Data.Sorteio” em mais colunas, considerando o separador “/”.
As novas colunas criadas recebem os nomes de “dia”, “mes” e “ano”. Como queremos manter a coluna “Data.Sorteio” também em seu formato original, nós adicionamos “remove = FALSE”.
Por fim, usamos o arrange()
para ordenar os dados considerando as colunas “mes” e “ano”.
megasena_df <- megasena %>%
separate(Data.Sorteio, c("dia", "mes", "ano"), sep = "/", remove = FALSE) %>%
arrange(mes, ano)
Agora apenas reordenamos o arquivo em ordem decrescente, considerando a coluna “ano”.
megasena_df <- megasena_df %>%
arrange(desc(ano))
Desta vez, queremos transformar os dados da coluna “Ganhadores_Sena” em número e usamos as funções mutate()
e as.numeric()
. Depois também reordenamos com arrange()
e desc()
.
megasena_df <- megasena_df %>%
mutate(Ganhadores_Sena = as.numeric(Ganhadores_Sena)) %>%
arrange(desc(Ganhadores_Sena))
Para descobrirmos quantas vezes a Mega Sena acumulou, nós vamos agrupar os dados considerando a coluna “Acumulado”, com a função group_by()
. Também queremos contar quantas linhas aparecem em cada variável da coluna “Acumulado” e, por isso, usamos também summarise()
e n()
.
megasena_acumulada <- megasena_df %>%
group_by(Acumulado) %>%
summarise(int = n())
A partir de agora, começamos a missão para descobrir quais foram os números mais sorteados nos concursos da Mega Sena. Vamos agrupar os dados apenas da coluna “1ª.Dezena”, que tem os primeiros números sorteados em cada concurso. Depois, vamos contar quantas vezes cada número apareceu. E depois vamos renomear a coluna para “n_sorteado”.
megasena_frequentes_1d <- megasena_df %>%
group_by(`1ª.Dezena`) %>%
summarise(int = n()) %>%
rename(n_sorteado = `1ª.Dezena`)
Faremos o mesmo procedimento anterior, só que com as demais colunas. Ou seja, com os dados da segunda bola sorteada. Depois, com os dados da terceira bola sorteada, da quarta bola sorteada etc.
megasena_frequentes_2d <- megasena_df %>%
group_by(`2ª.Dezena`) %>%
summarise(int = n()) %>%
rename(n_sorteado = `2ª.Dezena`)
megasena_frequentes_3d <- megasena_df %>%
group_by(`3ª.Dezena`) %>%
summarise(int = n()) %>%
rename(n_sorteado = `3ª.Dezena`)
megasena_frequentes_4d <- megasena_df %>%
group_by(`4ª.Dezena`) %>%
summarise(int = n()) %>%
rename(n_sorteado = `4ª.Dezena`)
megasena_frequentes_5d <- megasena_df %>%
group_by(`5ª.Dezena`) %>%
summarise(int = n()) %>%
rename(n_sorteado = `5ª.Dezena`)
megasena_frequentes_6d <- megasena_df %>%
group_by(`6ª.Dezena`) %>%
summarise(int = n()) %>%
rename(n_sorteado = `6ª.Dezena`)
Agora que nós já temos os números mais frequentes sorteados na primeira, na segunda, na terceira, na quarta, na quinta e na sexta bola do concurso. Os cabeçalhos desses arquivos são iguais. E agora vamos empilhar esses arquivos com a função rbind()
.
megasena_frequentes <- rbind(megasena_frequentes_1d,
megasena_frequentes_2d,
megasena_frequentes_3d,
megasena_frequentes_4d,
megasena_frequentes_5d,
megasena_frequentes_6d)
O nosso novo arquivo tem os dados de números mais frequentes em cada bola. Mas queremos saber no geral quais foram os números mais frequentes. Por isso, vamos agrupar os dados novamente, com a função group_by()
.
Depois, usamos ainda summarise()
e sum()
. Usamos aqui o sum()
porque queremos somar os valores da coluna int, e não apenas contar o número de linhas. Depois, reordenamos os dados, com a função arrange()
, para mostrar em ordem decrescente, com a função desc()
.
megasena_frequentes <- megasena_frequentes %>%
group_by(n_sorteado) %>%
summarise(int = sum(int)) %>%
arrange(desc(int))