O R é uma linguagem e um ambiente para computação estatística no formato de projeto de software livre de código aberto (open source), ou seja, pode ser utilizado sem custos de licença. Pelo fato de ser um software livre e com o esforço colaborativo mundial de vários pesquisadores o R é uma plataforma multidisciplinar voltado para análises de dados e referência nos meios científicos.
library(highcharter)data(GNI2014, package ="treemap")hcmap("custom/world-robinson-lowres",data = GNI2014,name ="Gross national income per capita",value ="GNI",borderWidth =0,nullColor ="#d3d3d3",joinBy =c("iso-a3", "iso3") ) |>hc_colorAxis(stops =color_stops(colors = viridisLite::inferno(10, begin =0.1)),type ="logarithmic" )
Renda nacional bruta (per capita) em dólares - 2014
O software o R: Instalando o software R, instalando o RStudio e interface do RStudio
Rbase: variáveis, sintaxe, comandos e como obter ajuda.
Pacote tidyverse: Leitura e Manipulação de Dados
GGPLOT: Gráficos no Software R
Introdução a série temporal
Introdução ao Rmarkadown
Exemplo prático
O software o R
site do R
O R é uma linguagem orientada a objetos criada em 1996 por Ross Ihaka e Robert Gentleman que aliada a um ambiente integrado permite a manipulação de dados, realização de cálculos e geração de gráficos.
No Cran escolhido, você escolhe o sistema operacional de sua máquina (p. ex., Windows) e faça o download do programa básico: “Base”.
Observe que na página do Download tem algumas informações úteis. Para instalar o programa básico, basta executar o arquivo R-(versão) - (sistema operacional).exe que você baixou.
Instalando o RStudio
- Após a instalação do R , faça a instalação do Rstudio, que está disponível em <http://rstudio.org/>.
- O download do RStudio está disponível para vários sistemas operacionais
Interface do RStudio
A tela principal do RStudio, diferentemente do R, é disposta em 4 janelas. A apresentação padrão é a da Figura 1. No canto superior a esquerda é apresentada a janela Source, na qual são disponibilizados os scripts (códigos de programação previamente redigidos e salvos em arquivo com extensão .R), arquivos de texto, documentos Sweave, documentação do R e documentos TeX.
Na janela superior a direita, a primeira aba é disponibilizada para gerenciar diferentes áreas de trabalho. Já na segunda aba desta janela fica registrado o histórico de todos os scripts, funções e ações executadas.
Na parte inferior a esquerda, localiza-se a janela do Console, a mesma janela padrão disponibilizada no R. E finalmente, na janela inferior a direita, são agrupadas em uma janela outras 4 abas: a primeira delas é um gerenciador de arquivos (aba File), na segunda são exibidos os gráficos gerados pelo RStudio (aba Plots). Na terceira aba são apresentados os pacotes já instalados (aba Packages). E finalmente, a quarta aba trata-se da Ajuda (aba Help) do R/RStudio.
Na janela Source ao editar o script é possível comentar ou não automaticamente (sem necessidade de digitação) determinada parte do código utilizando a opção Edit/Comment/Uncomment Lines, mantendo o cursor na linha a ser executada ou selecionar o conjunto de linhas desejado. Nesta tela, também é possível indentar automaticamente comandos, uma prática comum na organização de scripts na área da computação.
Os scripts podem ser executados por meio do botão Run, não havendo mais necessidade de clicar com o botão direito do mouse linha a linha do script. Também é possível executar várias linhas de comando, selecionando as linhas desejadas e executando-as por meio do botão Run ou pelas teclas Ctrl+Enter.
Tal como acontece com o Console padrão do R, o Console do RStudio permite executar comandos usados anteriormente por meio das teclas Up (↑) e Down (↓). Além disso, apresenta uma lista de comandos usados recentemente, por meio das teclas Ctrl+Up (↑) ou Crtl+Down (↓).
Na aba Workspace da tela superior a direita do RStudio é apresentada a área de trabalho onde seus dados são apresentados em forma de conjunto de dados (vetores, matrizes, etc.) disponíveis na área de trabalho e variáveis, que podem ser alterados por meio de duplo clique. Nesta aba também é possível carregar um conjunto de dados e carregar uma nova área de trabalho, alternando-se facilmente entre elas.
Na aba Plots da tela inferior a direita do RStudio onde são apresentados os gráficos gerados, é possível salvar as imagens em formado PDF e figuras de diferentes formatos (JPG, BMP, TIFF, PNG, metalife,etc.)]
Rbase: variáveis, sintaxe, comandos e como obter ajuda
As linhas iniciadas pelo símbolo # são consideradas comentários.
Os comandos são separados por ponto e vírgula (“;”) ou são inseridos em nova linha; podem agrupar-se dentro de chaves (“{…}”); há distinção entre letras maiúsculas e minúsculas; se ao terminar a linha, o comando não está totalmente completo, irá aparecer o símbolo de “+” na próxima linha para continuação, usando o Console.
Operações Matemáticas:
Simbolo
Operações
+
Soma
-
Subtração
*
Multiplicação
/
Divisão
^ ou **
Potência
Operadores relacionais e operadores lógicos
Simbolo
Descrição
<
Menor
<=
Menor ou igual
>
Maior
>=
Maior ou igual
==
Igual (comparação)
!=
Diferente
&
E
|
Ou
!
Não
TRUE ou 1
Valor booleano verdadeiro (1)
FALSE ou 0
Valor booleano falso (0)
Comandos úteis e importantes.
Função
Descrição
setwd(” “)
muda o diretório do trabalho
getwd()
mostra o diretório do trabalho
ls()
lista o nome dos objetos criados na sessão atual
dir()
lista todos os arquivos na pasta de trabalho atual
search()
lista todos os pacotes carregados
rm()
remove o objeto entre parênteses
rm(list=ls(all=TRUE))
remone todos os objetos, limpando a memória
attach()
reconhece os objetos dentro de um data frame
detach()
função que desfaz o attach
help.start()
página de ajuda do R
help()
ajuda de comando específico
help.search()
ajuda encontrar função
apropos()
encontra função que contenha determinada palavra
example()
mostra exemplo de como utilizar função
Ajuda no R
# help.start() #ajuda geral do Rhelp("*")help(mean)help.search("mean") # caso não lembre bem o nome da função?mean #mesmo que help??mean #mesmo que help.searchapropos("help") #funções contendo "help"
mean> x <- c(0:10, 50)
mean> xm <- mean(x)
mean> c(xm, mean(x, trim = 0.10))
[1] 8.75 5.50
Funções importantes
Função
Descrição
sum(x)
Soma todos os elementos do vetor x
sqrt(x)
Raiz quadrada de x
length(x)
Tamanho do vetor x
log(x)
Log natural de x
log(x,b)
Log de x com base b
exp(x)
Exponencial elevado a x
sin(x)
Seno de x
tan(x)
tangente de x
mean(x)
Média de x
var(x,y) ou cov(x,y)
Covariância entre x e y, ou entre as colunas de x e de y se são matrizes ou data.frame
cor(x,y)
Correlação linear entre x e y, ou matriz de correlação se são matrizes ou data.frames
max(x)
seleciona o maior elemento do vetor x
min(x)
seleciona o menor elemento do vetor x
sample()
funçã para gerar amostra
Tipo de dados
Tipo
Exemplo
Numérico (numeric)
3, 7.5, 10.01
Inteiro (integer)
3L (a letra L faz o R considerar o número como inteiro)
Caractere (character)
“a”,“nome”
Lógico (logical)
TRUE, FALSA
Complexo (complex)
1+4i
Tipos de estruturas de dados
Vetores: conjunto de elementos de uma mesma natureza.
Matrizes: conjunto de elementos de uma mesma natureza organizado em linhas e colunas.
Array: generaliza a ideia de matriz. Enquanto em uma matriz os elementos são organizados em duas dimensões (linhas e colunas), em um array os elementos podem ser organizados em um número arbitrário de dimensões.
Data frames: similar como matrizes, porém diferentes colunas podem possuir elementos de natureza diferentes.
Listas: generalizações de vetores, representa uma coleção de objetos.
Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50
# apenas linhas da Species == setosasetosa<-dados[dados$Species=="setosa",]# apenas linhas valor de sepal length < 5menor5<-dados[dados$Sepal.Length<5,]
Existem outros pacotes para abrir arquivos de diferentes software, inclusive pacotes especificos para abrir formato excel, spss, stata, SAS e etc (readxl, forign).
Exercicio
Criar uma data frame simulando uma base de dados contendo as colunas sexo, altura e idade. Onde, sexo é uma coluna de M e F alternados, altura é uma variável normal com média 1.6 e desvio padrão 0,2 e idade é um valor que varia de 15 a 25 anos. Salvar no formato csv
O tidyverse é uma coleção de pacotes R projetados para ciência de dados. Todos os pacotes compartilham uma filosofia de design, gramática e estruturas de dados semelhantes.
# A tibble: 6 × 3
altura peso genero
<dbl> <dbl> <chr>
1 1.6 65 <NA>
2 1.65 55 <NA>
3 1.5 70 <NA>
4 NA 55 masc
5 NA 60 masc
6 NA 66 fem
# Criando data frame com colunas diferentesdf4<-tibble("c1"=c("a","b"),"c2"=1:2, "c3"=50:51)df4
# A tibble: 2 × 3
c1 c2 c3
<chr> <int> <int>
1 a 1 50
2 b 2 51
#nenhuma coluna em comumbind_rows(df1,df4)
# A tibble: 5 × 5
altura peso c1 c2 c3
<dbl> <dbl> <chr> <int> <int>
1 1.8 62 <NA> NA NA
2 1.6 65 <NA> NA NA
3 1.65 70 <NA> NA NA
4 NA NA a 1 50
5 NA NA b 2 51
#############juntando por colunas iguais?join# retorna números em comuminner_join(df2,df3, by="peso")
# A tibble: 1 × 3
altura peso genero
<dbl> <dbl> <chr>
1 1.65 55 masc
# todos os valores do data frame da esquerdaleft_join(df2,df3, by="peso")
# %>% "pipe" ou "tubo"#coloca o objeto que vem antes do pipe como primeiro argumento da função que vem depoissetosa<- dados %>%filter(Species =="setosa")#mesma coisa que:setosa<-filter(dados, Species =="setosa")
# Forma mais dinamica de ler os dados# Fazendo comandos separadossetosa<-filter(dados,Species =="setosa") setosa<-select(setosa,1:3) setosa<-mutate(setosa,soma =Sepal.Length+Sepal.Width)# Fazendo o comando usando o pipesetosa1<- dados %>%filter(Species =="setosa") %>%select(1:3) %>%mutate(setosa,soma =Sepal.Length+Sepal.Width)#View(setosa1)
tidyr
gather
#library(tidyr) # não necessário se o tidyverse já foi carregado#junta valores de diferentes colunas e reorganiza#gather( dataframe, variavel, valor, colunas)#gather(setosa, variavel,numero, - linha) dados1<- dados %>%select(3:5) %>%gather(variavel,numero,-Species)dados1
# A tibble: 6 × 11
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compa…
2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compa…
3 audi a4 2 2008 4 manual(m6) f 20 31 p compa…
4 audi a4 2 2008 4 auto(av) f 21 30 p compa…
5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compa…
6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compa…
g<-ggplot(dados)+geom_point(aes(Petal.Length,Petal.Width,colour=Species))+labs(title="Comprimento por largura de pétalas",x="Comprimento",y="Largura")+# Título e nomes dos eixosscale_colour_manual(name="Espécie",labels=c("Setosa","Versicolor","Virginica"),values=c("skyblue", "royalblue", "blue"))g
g1<-ggplot(iris,aes(Petal.Length,fill=Species))+geom_bar()+labs(title="Frequência de cada valor de Petal.Length",x="Valores de Petal.Length",y="Frequência/Contagem")+#Título e nomes dos eixosscale_fill_manual(name="Espécie",labels=c("Setosa","Versicolor","Virginica"),values=c("goldenrod2","steelblue","green4"))g1
Temas
g+theme_bw()
g+theme_classic()
g+theme_minimal()
g+theme_dark()
g1+theme_bw()
g1+theme_classic()
g1+theme_minimal()
g1+theme_void()
g1+theme_dark()
mais temas com o pacote ggthemes
library(ggthemes)g1+theme_wsj()#+scale_colour_wsj() #wall street journal
g1+theme_gdocs()
cores
g+theme_economist() +scale_colour_economist()# esquema de cores do the economist
Scale for 'colour' is already present. Adding another scale for 'colour',
which will replace the existing scale.
##duas variáveis contínuas com pares de números/ time series/ etc View(economics)