From ee11d675e783a6a31a31e7737f8260e496c7934f Mon Sep 17 00:00:00 2001 From: Walmes Zeviani <walmes@ufpr.br> Date: Sun, 15 May 2016 15:59:44 -0300 Subject: [PATCH] Adiciona o campeonato brasileiro de 2010. --- R/cambras.R | 79 ++++++++++++++++++++++++++++++++++++++++++++ data/cambras.rda | Bin 0 -> 2121 bytes man/cambras.Rd | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 R/cambras.R create mode 100644 data/cambras.rda create mode 100644 man/cambras.Rd diff --git a/R/cambras.R b/R/cambras.R new file mode 100644 index 0000000..becf204 --- /dev/null +++ b/R/cambras.R @@ -0,0 +1,79 @@ +#' @name cambras +#' @title Resultados do Campeonato Brasileiro de 2010 +#' @description Dados sobre o número de gols dos times mandantes e +#' desafiantes de todas as partidas do Campeonato Brasileiro de +#' 2010. +#' @format Um \code{data.frame} com 380 observações e 5 variáveis. +#' \describe{ +#' +#' \item{\code{rod}}{Inteiro que identifica o número da rodada.} +#' +#' \item{\code{home}}{Fator que identifica o time mandante da partida, +#' aquele que jogou em casa.} +#' +#' \item{\code{away}}{Fator que identifica o time desafiante da partida, +#' aquele que jogou fora de casa.} +#' +#' \item{\code{h}}{Número de gols feitos pelo time mandante na partida.} +#' +#' \item{\code{a}}{Número de gols feitos pelo time desafiante na +#' partida.} +#' +#' } +#' @examples +#' +#' # Resultados finais na internet. +#' # browseURL(paste0("http://esportes.terra.com.br/futebol/", +#' # "brasileiro/2010/noticias/0,,OI4339585-EI15413", +#' # ",00-Classificacao+e+Jogos+Serie+A.html")) +#' +#' Xh <- model.matrix(~-1 + home, cambras) +#' Xa <- model.matrix(~-1 + away, cambras) +#' +#' Xha <- Xh - Xa +#' cambras[1:5, c("home", "away")] +#' print(as.table(t(Xha[1:5, ])), zero.print = ".") +#' +#' gsgc <- cbind(scored = t(Xh) %*% cambras$h + t(Xa) %*% cambras$a, +#' conceded = t(Xa) %*% cambras$h + t(Xh) %*% cambras$a) +#' colnames(gsgc) <- c("gScored", "gConced") +#' gsgc +#' +#' # Pontos em cada partida (empate = 1, vitória = 3). +#' pts <- with(cambras, { +#' d <- h - a +#' draw <- d == 0 +#' winH <- d > 0 +#' winA <- !(draw | winH) +#' x <- cbind(h = winH * 3 + draw, a = winA * 3 + draw) +#' return(x) +#' }) +#' +#' tableIn <- function(x) { +#' tb <- table(x) +#' f <- rep(0, 3) +#' names(f) <- c(0, 1, 3) +#' f[names(tb)] <- tb +#' return(f) +#' } +#' +#' # Derrotas, empates e vitórias. +#' ldw <- +#' do.call(rbind, lapply(tapply(pts[, 1], cambras$home, +#' FUN = tableIn), +#' FUN = as.vector)) + +#' do.call(rbind, lapply(tapply(pts[, 2], cambras$away, +#' FUN = tableIn), +#' FUN = as.vector)) +#' colnames(ldw) <- c("Lose", "Draw", "Win") +#' ldw +#' +#' # Tabela completa de 2010. +#' pl10 <- t(Xh) %*% pts[, "h"] + t(Xa) %*% pts[, "a"] +#' pl10 <- cbind(team = levels(cambras$home), data.frame(pts = pl10)) +#' pl10 <- cbind(pl10, ldw[, 3:1], gsgc) +#' pl10 <- plyr::arrange(pl10, -pts) +#' pl10$pos <- rank(-pl10$pts) +#' pl10 +#' +NULL diff --git a/data/cambras.rda b/data/cambras.rda new file mode 100644 index 0000000000000000000000000000000000000000..a718421d2c17b064e58ef280cf14849b26832810 GIT binary patch literal 2121 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 literal 0 HcmV?d00001 diff --git a/man/cambras.Rd b/man/cambras.Rd new file mode 100644 index 0000000..37bf7cb --- /dev/null +++ b/man/cambras.Rd @@ -0,0 +1,83 @@ +% Generated by roxygen2 (4.1.1): do not edit by hand +% Please edit documentation in R/cambras.R +\name{cambras} +\alias{cambras} +\title{Resultados do Campeonato Brasileiro de 2010} +\format{Um \code{data.frame} com 380 observações e 5 variáveis. +\describe{ + +\item{\code{rod}}{Inteiro que identifica o número da rodada.} + +\item{\code{home}}{Fator que identifica o time mandante da partida, + aquele que jogou em casa.} + +\item{\code{away}}{Fator que identifica o time desafiante da partida, + aquele que jogou fora de casa.} + +\item{\code{h}}{Número de gols feitos pelo time mandante na partida.} + +\item{\code{a}}{Número de gols feitos pelo time desafiante na + partida.} + +}} +\description{ +Dados sobre o número de gols dos times mandantes e + desafiantes de todas as partidas do Campeonato Brasileiro de + 2010. +} +\examples{ +# Resultados finais na internet. +# browseURL(paste0("http://esportes.terra.com.br/futebol/", +# "brasileiro/2010/noticias/0,,OI4339585-EI15413", +# ",00-Classificacao+e+Jogos+Serie+A.html")) + +Xh <- model.matrix(~-1 + home, cambras) +Xa <- model.matrix(~-1 + away, cambras) + +Xha <- Xh - Xa +cambras[1:5, c("home", "away")] +print(as.table(t(Xha[1:5, ])), zero.print = ".") + +gsgc <- cbind(scored = t(Xh) \%*\% cambras$h + t(Xa) \%*\% cambras$a, + conceded = t(Xa) \%*\% cambras$h + t(Xh) \%*\% cambras$a) +colnames(gsgc) <- c("gScored", "gConced") +gsgc + +# Pontos em cada partida (empate = 1, vitória = 3). +pts <- with(cambras, { + d <- h - a + draw <- d == 0 + winH <- d > 0 + winA <- !(draw | winH) + x <- cbind(h = winH * 3 + draw, a = winA * 3 + draw) + return(x) +}) + +tableIn <- function(x) { + tb <- table(x) + f <- rep(0, 3) + names(f) <- c(0, 1, 3) + f[names(tb)] <- tb + return(f) +} + +# Derrotas, empates e vitórias. +ldw <- + do.call(rbind, lapply(tapply(pts[, 1], cambras$home, + FUN = tableIn), + FUN = as.vector)) + + do.call(rbind, lapply(tapply(pts[, 2], cambras$away, + FUN = tableIn), + FUN = as.vector)) +colnames(ldw) <- c("Lose", "Draw", "Win") +ldw + +# Tabela completa de 2010. +pl10 <- t(Xh) \%*\% pts[, "h"] + t(Xa) \%*\% pts[, "a"] +pl10 <- cbind(team = levels(cambras$home), data.frame(pts = pl10)) +pl10 <- cbind(pl10, ldw[, 3:1], gsgc) +pl10 <- plyr::arrange(pl10, -pts) +pl10$pos <- rank(-pl10$pts) +pl10 +} + -- GitLab