henriquepgomide / caRtola

Extração de dados da API do CartolaFC, análise exploratória dos dados e modelos preditivos em R e Python - 2014-22. [EN] Data munging, analysis and modeling of CartolaFC - the most popular fantasy football game in Brazil. Data cover years 2014-23.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inconsistências nos dados de 2019

lcgodoy opened this issue · comments

Boa noite,

O arquivo 2019_partidas.csv contém algumas inconsistências como, por exemplo, o jogo entre São Paulo e Santos, na rodada 14. Os erros estão tanto no placar quanto no confronto. Sei que é difícil conduzir um projeto dessa magnitude que provávelmente não é a atividade principal de nenhum dos desenvolvedores, por isso estou apontando este erro com o intuito de ajudar. Note que, o erro em questão pode afetar tanto análises descritivas quanto previsões.

Eu utilizei o repositório para recuperar estes dados nas minhas análises.
Segue o código abaixo (tenho utilizado o data.table ao invés do dplyr), não fiz um pull request pq não saberia se o mesmo seria bem-vindo e por eu não estar a par tanto da estrutura completa do projeto quanto nas suas "guidelines" para contribuição.

library(data.table)

## data from Github; address:
##   https://github.com/adaoduque/Brasileirao_Dataset

url_csv_matches <- "https://raw.githubusercontent.com/adaoduque/Brasileirao_Dataset/master/campeonato-brasileiro-full.csv"

## verifying encoding (works only when the file is stored locally)
## system(sprintf("file --mime-encoding %s", url_csv_matches))

dt_matches <- fread(url_csv_matches,
                    encoding = "UTF-8")

## making clean names and removing useless columns

setnames(x = dt_matches, old = names(dt_matches),
         new = janitor::make_clean_names(names(dt_matches)))

set(x = dt_matches,
    j = c("horario", "dia",
          "vencedor", "arena",
          "clube_1_estado",
          "clube_2_estado",
          "estado_clube_vencedor"),
    value = NULL)

## modifying dates, rounds and converting strings to ascii//translit

dt_matches[, data := as.Date(data, format = "%Y-%m-%d")]
dt_matches <- dt_matches[year(data) == 2019]

str_to_modify <- c("clube_1", "clube_2", "rodada")

dt_matches[, c(str_to_modify) := lapply(.SD, function(x)
  tolower(iconv(x, from = "UTF-8", to = "ASCII//TRANSLIT"))),
  .SDcols = str_to_modify]

## dt_matches[, rodada := stringr::str_extract(string  = rodada,
##                                             pattern = "(\\d)*")]
dt_matches[, rodada := gsub(pattern = "\\D", replacement = "",
                            x = rodada)]

## OK
dt_matches[clube_1 == "sao paulo" | clube_2 == "sao paulo",]

fwrite(x = dt_matches,
       file = "data/2019/2019_partidas.csv")

Um outro ponto que, por eu não ter coletado os dados durante o campeonato do ano passado, não posso ajudar é que os dados do time do palmeiras entre as rodadas 1 e 4 (ou 5) não foram computados, isto é, todos os jogadores estão com 0 gols, 0 faltas cometidas, 0 faltas sofridas, etc. O curioso é que, os dados referentes aos oponentes do palmeiras nessas partidas estão lá.

De resto, obrigado por disponibilizar o repositório.

Agora estou lembrando, acredito que ano passado houve um problema contratual entre Palmeiras e Globo nas primeiras rodadas. Portanto, desconsiderem o segundo ponto.

@lcgodoy, muito obrigado pelas correções! Usei seu script para produzir e atualizar o arquivo de partidas!

Fique à vontade para submeter pull requests! Sempre bem vindos! :)