## ---- BUSCANDO AJUDA ---- ## ?plot # ou help(plot) ## ---- CÓDIGOS BÁSICOS ---- ## # print – imprime/retorna um argumento print('Olá mundo!') ## Funciona como cálculadora # soma a = 2 + 2 print(a) # subtração 8 - 3 # multiplicação 3 * 8 # potências 2 ^ 8 # prioridade de solução (2 + 4) / 7 ## ---- INTALAÇÃO DE PACOTES/BIBLIOTECAS ---- ## # principais # inclui funções como filter, select, group by, summarise, arrange, etc. install.packages("dplyr") # instala library(dplyr) # carrega require(dplyr) # organização dos dados install.packages("tidyr") library(tidyr) require(tidyr) # leitura e importação de dados install.packages("readr") library(readr) require(readr) # manipulação de strings e textos install.packages("stringr") library(stringr) # geração de gráficos install.packages("ggplot2") library(ggplot2) ## ---- FUNÇÕES ---- ## # logaritmo log(4) log10(4) # log na base 10 # raiz quadrada sqrt(4) # repetir um valor b <- rep(x = 1, times = 4) # soma de vários valores sum(1, 8, 79) sum(b) # vetor v1 <- c(10, 20, 15, 40) v2 <- c("a", "b", "c", NA) v3 <- c(TRUE, FALSE, TRUE, TRUE) # data frame = combinar dados data1 <- data.frame(v1, v2, v3) mean(data1$v1) # media median(data1$v1) # mediana sd(data1$v1) # desvio padrão var(data1$v1) # variância summary(data1$v1) # sumário estatístico # merge - conexão entre dois conjuntos de dados df1 <- data.frame(id = c(1, 2, 3), nome = c("João", "Maria", "Pedro")) df2 <- data.frame(id = c(2, 3, 4), idade = c(25, 30, 35)) merged <- merge(df1, df2, by = "id") View(merged) print(merged) ## ---- ARQUIVOS E FUNÇÕES ---- ## # header em relação ao título das variáveis, por isso o TRUE, # e sep é o tipo de separador do arquivo (. , ; | " ") # meus_dados <- read.csv(file = "meus_dados.csv", header=T, sep=",") meus_dados <- read.csv(file = "C:/Caminho-do-arquivo/movies.csv", header=T, sep=",") # em file, alterar o caminho onde o arquivo está salvo # remove linhas com dados faltantes/nulos meus_dados <- na.omit(meus_dados) # meus_dados$budget <- ifelse(is.na(meus_dados$budget), 0, meus_dados$budget) substituir valores nulos por zero # meus_dados$budget <- ifelse(is.na(meus_dados$budget), ".", meus_dados$budget) substituir valores nulos por "." sum(meus_dados$votes) mean(meus_dados$budget) min(meus_dados$budget) # mínimo max(meus_dados$budget) # máximo correlacao <- cor(meus_dados$gross, meus_dados$votes) # correlação hist(meus_dados$budget) # histograma meus_dados[c(10:20), ] # visualizar informações de linhas determinadas, por ex: 10 a 20 meus_dados[72, 3] # linha 72, 3ª coluna meus_dados[meus_dados$genre == "Fantasy", ] # filtro por gênero meus_dados %>% # filtrar apenas títulos com faturamento maior que 900M select(name, year, score, votes, gross) %>% filter(gross >= 900000000) meus_dados$nova_coluna <- 0 # criar uma nova coluna preenchida com zeros meus_dados$nova_coluna_1 <- 2 * meus_dados$votes # nova coluna com 2 vezes o valor de votes meus_dados$nova_coluna_2 <- mean(meus_dados$budget, na.rm = TRUE) # coluna nova com a média de orçamento # na.rm = TRUE é usada para ignorar valores nulos (NA) ao calcular a média meus_dados$copia_score <- meus_dados$score # copia de uma coluna existente filmes_por_ano <- meus_dados %>% group_by(year) %>% # agrupamento dos dados por ano summarise(total = n()) # realiza a somatória conforme o ano filmes_por_genre <- meus_dados %>% group_by(genre) %>% # agrupamento dos dados por gênero summarise(total = n()) %>% arrange(desc(total)) write.csv(filmes_por_genre, file = "filmes_genero.csv", row.names = FALSE) #salvar o arquivo dados_agrupados <- meus_dados %>% group_by(year, genre) %>% # agrupamento por ano e gênero summarise(contagem = n()) # realiza a somatória de gêneros por ano ## ---- GRÁFICOS ---- ## filmes_por_ano %>% ggplot(aes(x=year, y=total)) + geom_line(color="#836FFF") # gráfico de linha na cor escolhida (nome, hexa) filmes_por_ano %>% ggplot(aes(x = year, y = total)) + geom_bar(stat = "identity", fill = "black") ggplot(filmes_por_genre, aes(x=genre, y=total, fill=genre)) + # mapeando a variável genre para o preenchimento (fill) das barras; # dessa forma, cada barra no gráfico de barras será preenchida com uma cor diferente # com base na categoria do gênero correspondente geom_bar(stat="identity") + # gráfico de barras xlab("Gêneros") + ylab("Número de filmes") + ggtitle("Filmes por gêneros") grafico <- dados_agrupados %>% filter(year >= 2015) %>% # filtrar apenas filmes lançados a partir de 2015 filter(genre %in% c("Comedy", "Animation", "Action")) %>% # apenas dos gêneros comédia, #animação e ação ggplot(aes(x = year, y = contagem)) + geom_line(aes(color = genre)) + scale_color_brewer(palette = "Set1") # uma das paletas disponíveis no pacote RColorBrewer plot(grafico) # plotar o gráfico ggsave("nome_do_grafico.png", plot = grafico, dpi = 300) # salvar o gráfico # pode escolher o formato que desejar, jpg, jpeg, pdf, entre outros