diff --git a/R/cambras.R b/R/cambras.R new file mode 100644 index 0000000000000000000000000000000000000000..becf204416e815417ac205fe26df3bca669f3c0e --- /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 Binary files /dev/null and b/data/cambras.rda differ diff --git a/man/cambras.Rd b/man/cambras.Rd new file mode 100644 index 0000000000000000000000000000000000000000..37bf7cba7337e3c45772085c7f81ab020037127c --- /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 +} +