This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.
library (devtools)
library (dplyr)
library (ggplot2)
library (shiny)
library(statsr)
library(GGally)
bons sites -> https://sosestatistica.com.br/como-fazer-e-analisar-um-histograma-no-r/
bons sites2 -> https://www.curso-r.com/material/ggplot/
# Create the vector with saldo de gols do são paulo no camp brasileiro desde 2003
v <- c(14, 35, 10, 34, 36, 30, 15, 0, 11, 22, -1, 19, 6, 8, -1, 12, 9)
# Create the function.
getmode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}
# Calculate the mode using the user function.
result <- getmode(v)
print(result)
[1] -1
resumo até aqui
summary(v)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1.00 8.00 12.00 15.24 22.00 36.00
hist(v)
# Transformar vetor para data.frame
dados2 <- data.frame(y = v)
# Criar histograma
h1 <- ggplot(dados2, aes(y)) + geom_histogram() +
xlab("Dados") + ylab("Frequencia")
h1
dim(dados2)
[1] 17 1
transformar em variável categórica com categorias de gols
#transformar em variável categórica com categorias de gols
dados2$y <- with(dados2, cut(x = y, breaks = c (-2,10,20,30,40, max(y, na.rm = T)), labels=c('(-2~10]','(10-20)','(20-30]','(30~40)','>40'),
ordered_result = TRUE, right = TRUE))
dim(dados2)
[1] 17 2
#recriar os dados numéricos como w
dados2$w <- c(14, 35, 10, 34, 36, 30, 15, 0, 11, 22, -1, 19, 6, 8, -1, 12, 9)
summary(dados2)
#acrescentar novo dado à 'dados2' ~gols marcados por ano e ano
#y são os anos em que há saldo de gols positivos
#g gols por campeonato
#h é igual a g e será transformado em categorial
dados2$ano <- c(2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019)
dados2$g <- c(NA,NA,NA,66,55,66,57,54,57,59,39,59,53,44,48,46,39)
dados2$h <- c(NA,NA,NA,66,55,66,57,54,57,59,39,59,53,44,48,46,39)
dim(dados2)
[1] 17 6
##transformar em variável categórica com categorias de gols marcados
dados2$h <- with(dados2, cut(x = h, breaks = c (45,49,59,67, max(y, na.rm = T)), labels=c('(0~45]','(45-49)','(49-59]','>59'),
ordered_result = TRUE, right = TRUE))
summary(dados2$h)
(0~45] (45-49) (49-59] >59 NA's
3 2 7 2 3
#cruzando ano com os dados
dados2 %>%
group_by(ano) %>%
ggplot() +
geom_line(aes(x = ano, y = w))
#cruzando ano com os dados gols pró por ano
dados2 %>%
group_by(ano) %>%
ggplot(na.rm = TRUE) +
geom_line(aes(x = ano, y = g))
#tirar os anos de 2003, 2004 e 2005 da amostra (eram mais de 20 times)
dados2<-droplevels(subset(dados2,g!="NA"))
dados2<-droplevels(subset(dados2,h!="NA"))
# cruzamento saldo de gols e gols pró
ggplot(dados2) +
geom_point(mapping = aes(x = w, y = g)) +
geom_abline(intercept = 0, slope = 1, color = "red")
nota: nao parece haver muita relação
##proptable de y e h (as categóricas)
prop.table(table(dados2$y,dados2$h),2)
(0~45] (45-49) (49-59] >59
(-2~10] 1.0000000 0.5000000 0.2857143 0.0000000
(10-20) 0.0000000 0.5000000 0.4285714 0.0000000
(20-30] 0.0000000 0.0000000 0.1428571 0.5000000
(30~40) 0.0000000 0.0000000 0.1428571 0.5000000
# cruzamento saldo de gols e gols pró com mais frescuras
dados2 %>%
ggplot() +
geom_boxplot(aes(x = h, y = w))
# com a média (saldo de gols por faixa de gols pró)
dados2 %>%
group_by(h) %>%
summarise(mean_SG = mean(w))
`summarise()` ungrouping output (override with `.groups` argument)
#com a mediana (saldo de gols por faixa de gols pró)
dados2 %>%
group_by(h) %>%
summarise(median_SG = median(w))
`summarise()` ungrouping output (override with `.groups` argument)
Como deu certo
by(dados2$ya, dados2$y, summary)
dados2$y: (-2~10]
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1.00 -0.75 3.00 3.50 7.50 9.00
-----------------------------------------------
dados2$y: (10-20)
Min. 1st Qu. Median Mean 3rd Qu. Max.
11.00 11.75 13.50 14.25 16.00 19.00
-----------------------------------------------
dados2$y: (20-30]
Min. 1st Qu. Median Mean 3rd Qu. Max.
22 24 26 26 28 30
-----------------------------------------------
dados2$y: (30~40)
Min. 1st Qu. Median Mean 3rd Qu. Max.
34.0 34.5 35.0 35.0 35.5 36.0
acima como era esperado, bate certinho
por fim, uma ultima analise dos gols pró explicando o saldo de gols
by(dados2$ya, dados2$h, summary)
dados2$h: (0~45]
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1.000 3.500 8.000 5.333 8.500 9.000
-----------------------------------------------
dados2$h: (45-49)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1.00 2.25 5.50 5.50 8.75 12.00
-----------------------------------------------
dados2$h: (49-59]
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.00 8.50 15.00 15.57 20.50 36.00
-----------------------------------------------
dados2$h: >59
Min. 1st Qu. Median Mean 3rd Qu. Max.
30 31 32 32 33 34
Se o time fizer mais de 59 gols sobe para caralho o saldo