Escolar Documentos
Profissional Documentos
Cultura Documentos
1) O R é um software grátis.
O R é um software grátis para você e para todo mundo. É grátis para instalar, usar,
atualizar, modificar, redistribuir e até mesmo vender. Além disso, ele tem instação para
Linux, Mac e Windows.
Se você pegar algum outro software, verá que os preços são bem salgados.
2) R é Popular
Download R
Aqui é uma lista de todos os lugares que você pode fazer o download.
Eu acho o mais simples clicar nesse primeiro link aqui do topo. Porque já redireciona
você se baseando no que for melhor para a sua locazalição.
Agora, depende do seu computador. Você precisa antes de tudo saber a distribuição
.Se ele for Linux, provavelmente você já está familiarizado do que precisa fazer.
Se for windows, é só clicar em “base” e depois clicar em download R.
Como o meu computador é windows, farei o download.
Depois, clicar em download Rstudio. Então você escolherá a versão desktop. E Clique
na versão grátis.
Aparacerá uma lista de instaladores para diversas plataformas.Escolha seu sistema
operacional e clique. Como o meu computador é windows, irei baixar a versão
windows.
1) Configurações
A primeira coisa que farei no Rstudio é configurá-lo para facilitar nossa aula.
Vou aumentar o tamanho da letra, clicando em Tools, Global options
Depois, clicar em appearance e colocar a fonte 16 e darei um zoom de 125% para que
fique muito mais fácil de visualizar a aula.
Agora vou em “code” e irei clicar em Soft-wrap R souce files. Com isso, quando
digitarmos nosso código no script, ele irá pular de linha automaticamente.
Até a próxima aula!!
1 2
3
Essa primeira tela é o console. E vem com algumas informações úteis.
Podemos, por exemplo, digitar quit() para fechar o R aqui no console e você verá que
será fechado.
Pode ser fechado também apertando o X. Mas, no R, você pode fazer tudo pelo
código de programação.
Enfim, essas são apenas algumas informações básicas.Vamos limpar essa tela do
console clicando na vassourinha do próprio console.
Até a próxima aula!!
Se familiarizando com o R
Para trabalhar no R, sempre abrimos um script – É onde você digitará seu código.
Para abrir o script, você clica nesse botão (o maiszinho) e clica em R script.
E aqui está o novo script criado:
Ele tem o nome de Untitiled – sem título por padrão.
Vou salvar esse script clicando no botão de salvar. Colacarei na minha área de
trabalho, com o nome de Curso R. E vou apertar SALVAR. Podem reparar que mudou
o nome do script para Curso R.R
Agora temos todas as telas.
No R, você sempre trabalhará com essas quatro telas, e você entendera com milhares
de exemplos o quão úteis elas são. Chamarai de 1, 2, 3 e 4.
1 3
2 4
Vamos digitar aqui no script uma soma para vocês verem um exemplo.
Vou digitar então 2+2
E, para rodar, é só clicar em run!
Apertando run, roda a linha inteira. Mas, se você quiser rodar só uma parte, você
seleiciona.
No script, digitamos o código. No console, será impresso o resultado.
código
resultado
2) R como calculadora
Outra coisa legal do Rstudio é que podemos mover essas 4 telas do R, arrastando
para cima, baixo, direita ou esquerda. Podemos também minimizar cada uma dessas
janelas.
v v
Por enquanto, só quero ver o script e o console. Então arrastarei toda essa parte para
o lado direito.
3) Criando variável
Para guardar um valor em um objeto, a gente cria uma variável, vou chamar de x e
atribui valor a ela.
Para atribuir o valor a ela, usamos <-
Então, vou criar um objeto x colocar <- e o valor 2 e dar run.
Vocês podem ver que apareceu no console, mas não apareceu nenhum resultado.
Se eu digitar x aqui no script e rodar, você pode ver que ele imprimiu o valor que
guardamos no objeto x.
Vou criar agora um vetor para colocar vários números.
Vamos digitar c(2,2,3,4,5,5,6) para colocar esses valores em um objeto que chamarei
de y e rodar.
4) Valores vazios no R
Essa parte é importante falar porque muitos programadores com boa experiência em
R se perdem quando falam de valor vazio.
O R representa valor vazio por NA. Pode ser tanto para número como para caractere.
NA quer dizer Not Available
Então, se tivemos o vetor:
c(1,2,valor vazio, 4)
você escreve:
c(1,2,NA,4)
ou também, mesmo sendo caracatere, você escreve:
c(“a”,”b”,NA,”c”)
e exportar para o R,
Esse valor vazio na terceira linha o R chamará de NA.
No R, quase todas as operações com NA resulta em NA.
Por exemplo:
1 + NA
Sqrt(NA)
Se eu criar o vetor:
x <- c(1,2,3)
a soma será
Sum(x)
Mas se eu criar o vetor
y <- c(1,2,NA)
a soma já será:
Sum(y)
Mas, claro, tem modos de não resultar em NA, que falarei nas próximas aulas.
Além do NA, o R tem um valor especial que se escrebe NaN – Quer dizer “not a
number”.
Por exemplo, 0/0 é um exemplo de um cálculo que produzirá NaN. Porque não é um
número. Mas atua exatamente como o NA.
E, quando há NaN em alguma função, normalmente também produzirá NaN no
resultado.
Sqrt(NaN)
z <- c(1,2,NaN)
Sum(z)
5) Comentar no R
7) Gráfico no Rstudio
Criarei agora outro vetor, que chamarei de z com os valores 1,1,3,3,3,3 e 7. Vou rodar.
Podemos além de dar zoom, podemos passar a setinha para o lado, para ver o gráfico
anterior, exportar. E, também, apagar os gráficos gerados.
Até a próxima aula!!
Depois, vem a parte do Usage e Arguments. Que diz como é essa função, qual a
ordem dos argumentos e o que eles significam.
Ele nos diz que a soma precisa ser um vetor, o que é uma informação muito
importante e mostra o significado do na.rm.
NA quer dizer valor vazio, conforme tinha explicado.
E, por padrão, quando tem NA no argumento, o resultado será NA.
Então ele faz uma pergunta no argumento :
Deveria valor vazio, ou seja, NA ser removido. Por padrão, a resposta é FALSE.
Ou seja, não será removido.
Em details, mostra todo o detalhe da função. É muito útil para caso você esteja usando
alguma função mais complicada.
No caso da função sum, ele vai direto à nossa dúvida. Se na.rm for FALSE, a soma
caso tenha um valor vazio terá como resultado NA.
E a útlima parte é a parte da qual eu mais gosto. Que são exemplos disponíveis
utilizando essa função.
E tem até um exemplo com NA, para que não haja dúvida mesmo!
Até a próxima aula!
9) Instalando pacotes
Agora, escrevendo apenas uma função, que se chama percent, e colocando 2/3,
conseguimos o mesmo resultado, 66,7%! Incrível, não?
Até a próxima aula!!
O Rstudio realmente foi criado para facilitar a nossa vida. Mas podemos fazer a
mesma coisa digitando código.
Eu, particulamente, prefiro digitar o código.
Você digita no script:
install.packages(“scales”)
Depois que foi instalado com sucesso, você digita:
library(scale6s)
Eu prefiro digitar o código porque quando a gente fecha o Rstudio, o pacote deixa de
estar ativado.
Eu gosto que SEMPRE que abra o R já seja ativado alguns pacotes.
Entao eu deixo pronto sempre no script o código library(e aqui digito o pacote)
Caso eu passa o código para alguém, a pessoa não precisa ficar procurando o pacote
e ativar manualmente para rodar o meu código.
É só mandar o código para ela com a library!
Até a próxima aula!!!
Vou colocar tipo getwd() e você pode ver que mudou já o meu diretório.
Você pode ver ao lado da palavra Console no novo diretório.
Tipos de dados no R
12) Classes no R
a <- “variável”
typeof(a)
b <- “1”
typeof(b)
# numeric
É o padrão do R. Então quando você colocar um número, ele entende como numérico.
Aceita vírgula, inteiro etc.
c <- 1
typeof(c)
d <- 0.10
typeof(d)
# integer
Para o R entender que é inteiro, o número precisa ter um L maísculo do lado. Inteiro
não aceita casas decimais.
e <- 1L
typeof(e)
# logical
Lógico você fala se é verdadeiro ou falso. Pode escrever TRUE ou só T que o R já
entende que é TRUE.
f <- TRUE ou T
typeof(f)
g <- FALSE ou F
typeof(g)
typeof(h)
13) Coerção
Algumas vezes, o R pode não conseguir fazer a coerção e resulta em NA. Mas você
provavelmente receberá um aviso.
Estrutura de dados no R
Vetores
1) Como criar
Se nós escrevermos
x <- 1
x é um vetor do tipo numérico com uma única posição.
Usando o comando c() , concatena os k valores entre as vírgulas e cria um vetor.
Então, vetores são criados usando a função c()
x <- c(1,2,3,4,5)
Vetor precisa ter elementos do mesmo tipo.
Pode guardar qualquer tipo de dado, como caractere, inteiro, numérico, lógico,
complexo. Mas APENAS um.
Então pode ser:
Numérico
x <- c(1,2,3,4,5)
typeof(x)
length(x)
Inteiro
y <- c(1L,2L,3L,4L,5L)
typeof(y)
length(y)
Caracatere
z <- c(“1”,”2”,”3”,”4”,”5”)
typeof(z)
length(z)
Mas apenas um!
Se eu colocar, por exemplo,
a <- c(1,2,3L,”a”,TRUE)
Você pode perceber que tem numérico, inteiro, caractere e lógico!
Ele não aceita isso, então, automaticamente, ele converte para uma coisa só
typeof(a)
O R tem uma certa hierarquia, que é
DOMINANTE character > complex > numeric > integer > logical RECESSIVO
Então ele vai colocar tudo isso como caractere.
Mais um exemplo:
x <- c(1, 5, 4, 9, 0)
typeof(x)
length(x)
x <- c(1, 5.4, TRUE, "hello")
x
typeof(x)
vetor
vetor[2] <- “z”; # modifica o segundo elemento de um vetor
Z
vetor
vetor2 <- c(1,2,3,4,5,6)
vetor2
vetor2[vetor2<3] <- 1
vetor2
x <- c(-3,-2,-1,0,1,2)
x <- NULL
x[2]
x
Muito simples, não?
Até a próxima aula!!
5) Coerção de vetor
Vetor pode mudar seu tipo de dados para outro usando a função as.* (a classe que
você quiser).
Você pode coagir com as funções as.character(), as.numeric(), as.integer() e
as.logical().
ano <- c(1996,1997,2000)
typeof(ano)
ano
ano <- as.integer(ano)
typeof(ano)
ano
ano <- as.logical(ano)
typeof(ano)
ano
ano <- as.character(ano)
typeof(ano)
ano
Se o R não entender como coagir uma classe na outra, ele soltará um warning
informado que colocou NA no lugar.
ano
ano <- as.numeric(ano)
Fatores
1) Como criar
Matriz
1) Como criar
x[2,2]
10 x[2,2] <- 10
x[x<5] <- 0
Podemos adicionar linhas ou colunas utilizando a função rbind() e cbind()
cbind(x, c(1, 2, 3))
rbind(x,c(1,2,3))
Para remover linha ou coluna, é só selecionarmos o que queremos e reescrevermos a
variável:
x <- x[1:2,]
x
Lista
Por exemplo:
Se digitarmos x[3], aparecerá o que tem na teceira posição da lista, como um todo.
Mas, se quisermos pegar o que tem dentro da terceira posição, precisamos colocar
mais um colchete.
x[[3]]
Isso é um data frame! Você percebe que é uma matriz. Mas as colunas aceitam tipos
de dados diferentes. Por exemplo, numerico, caractere e lógico. Isso na matriz nao
pode.
Cada coluna de um data frame é um vetor. O data frame é um conjunto de vetores.
Já que cada coluna é um vetor, cada coluna só pode ter UM tipo de dado.
E todas as colunas precisam ter o mesmo tamanho. Caso não tenha, você precisa
colocar valor vazio.
Vejamos na prática!
Para criar, é só escrever data.frame().
Vou criar quatro vetores.
Só para lembrar, data frame exige variáveis do mesmo tamanho. Se não tiver o
mesmo tamanho, chame de NA
Repare que a primeira coluna, “nome”, eu criei como vetor..e coloquei aspas para
dizer que era caractere.
Por padrão, a função data.frame() converte o vetor caracter em fator..
E muitas vezes nós não queremos isso.
• Size:
o dim(surveys) - returns a vector with the number of rows in the first element, and the
number of columns as the second element (the dimensions of the object)
o nrow(surveys) - returns the number of rows
o ncol(surveys) - returns the number of columns
• Content:
o head(surveys) - shows the first 6 rows
o tail(surveys) - shows the last 6 rows
• Names:
o names(surveys) - returns the column names (synonym
of colnames() for data.frame objects)
o rownames(surveys) - returns the row names
• Summary:
o str(surveys) - structure of the object and information about the class, length and
content of each column
o summary(surveys) - summary statistics for each column
Sempre que lermos um arquivo externo, seja csv ,sas, spss..Ele transformará em data
frame.
2) Como acessar os componentes de um Data Frame?
x$nome #vetor
x$nome[1:2] #vetor
x[1:3,”nome”]
x[1:2,1]
x[1:2, “nome”]
ou
cbind(x,genero=c("M","F", NA))
Você pode perceber que você está inserindo uma coluna de vetor. Então precisa
ter o mesmo tipo de dado.
Linhas
Na linha, você pode perceber que está entrando numérico, lógico e caractere.
Então não podemos inserir um vetor, mas sim uma lista. Com esses três tipos de
dados.
Por isso é muito importante saber lista.
Até a próxima aula!!
Para deletar colunas, é igual como se deleta vetor. Até porque data frame são várias
colunas de vetor.
str(base)
Selecionar colunas
Você pode escrever de uma vez só o pipe com a função do dplyr ou pode pular linha.
Já adianto que é muito melhor pular linha porque o código ficar MUITO mais
organizado e mais facil de ser entendido.
Eu gosto de criar uma nova base e fazer as alterações.
Vou chamar de “nova_base”.
Pode perceber que criou o novo data frame chamado de nova_base aqui no canto
direito.
Se eu quiser selecionar todas as colunas EXCETO uma é só utilizar o sinal de menos
antes da palavra.
Por exemplo :
Filtrar
Nesse caso, mostrou apenas as colunas gênero e peso e imprimiu quem é do gênero
feminino.
Nova_base <-
base %>%
filter(genero %in% c(“Feminino”,” Indefinido”))
Se eu quiser filtrar só quem for peso maior do que 70, é só usar o sinal de maior.
Nova_base <-
base %>%
select(genero, peso) %>%
filter(peso > 70)
Se quiser selecionar apenas genero feminino com peso maior do que 70, é só colocar
o sinal do e comercial no filtro.
Nova_base <-
base %>%
select(genero, peso) %>%
filter(genero == “Maculino” & peso >70)
Se quiser que seja sexo masculino ou peso maior do que 70, é apenas utilizar uma
barra na vertical.
Nova_base <-
base %>%
select(genero, peso) %>%
filter(genero == “Maculino” | peso >70)
Aqui vou criar uma coluna onde todas as linhas tem o mesmo nome nessa coluna.
Nova_base <-
base %>%
mutate(perfil = “Saudável”)
Nova_base <-
base %>%
select(nome, peso, altura) %>%
mutate(perfil = “Saudável”)
Nova_base <-
base %>%
mutate(perfil = ifelse(peso > 60, “Saudável”, “Não Saudável))
Nova_base <-
base %>%
select(nome, peso, altura) %>%
mutate(perfil = ifelse(peso > 70 & sexo == “Masculino, “Saudável”, ifelse(peso < 70 &
sexo == “Masculino, “Não Saudável”, ifelse(peso > 60 & sexo == “Feminino”,
“Saudável”, “Não Saudável”))
Mas a maior dica que posso dar é você usar a função everything()
Você escreve a primeira variável que você quer na frente, no caso: “gênero”.
Nova_base <-
base %>%
select(gênero, everything())
Ordenar colunas
Nova_base <-
base %>% arrange(altura)
Nova_base <-
base %>%
arrange(desc(altura))
Podemos, também, colocar mais do que um. Pode ser um em ordem crescente e o
outro em ordem decrescente.
Nova_base <-
base %>%
arrange(desc(altura), peso)
Agrupar e Sumarizar
Nova_base <-
base %>%
group_by(genero) %>%
summarise (qtd = n()) (Aqui tanto faz se o summarise ou summarize, com z)
Nova_base <-
base %>%
group_by(genero) %>%
summarise (qtd = n(), media_peso = mean(peso), media_altura = mean(altura))
Nova_base <-
base %>%
group_by(genero, fumante) %>%
summarise (qtd = n())
Useful functions
• Center: mean(), median()
Gráficos com o R
https://www.datanovia.com/en/blog/ggplot-aes-how-to-assign-aesthetics-in-ggplot2/
http://leg.ufpr.br/~walmes/cursoR/data-vis/slides/08-ggplot2.pdf
Em 2005, foi publicado um livro chamado The Grammar of graphics, uma fonte
de princípios fundamentais para a construção de gráficos estatísticos. No
livro, ele defende que um gráfico é o mapeamento dos dados a partir de
atributos estéticos (posição, cor, forma, tamanho) de objetos geométricos
(pontos, linhas, barras, caixas).
Vamos instalá-lo:
install.packages("ggplot2")
library(ggplot2)
ggplot(peso) +
geom_point(aes(x = peso, y = altura))
ggplot(peso) +
geom_point(aes(x = peso, y = altura)) + geom_line()
Gráfico de pontos/linhas
library(ggplot2)
A primeira coisa que vamos fazer é criar o ggplot
ggplot(base)
Depois, podemos adicionar a estética. Você pode escrever mapping = se quiser.. mas
é opcional.
Depois, escreve “aes”, que quer dizer estética.
Escolhe o valor para o x e o valor para o y.
ggplot(base, aes(peso,altura))
Ficando assim.
Para adicionar linha a esse gráfico, é só você escrever “+” e a forma geométrica
geom_line.
ggplot(base, aes(peso,altura)) + geom_point() + geom_line()
Bem simples, não?
Se quiser que aparece o nome de cada pessoa que possui o respectivo peso e altura,
é só escrever label e adicionar a forma geométria geom_text.
ggplot(base, aes(peso,altura, label = nome)) + geom_point() + geom_line() +
geom_text()
Se quiser adicionar cor, é só digitar colour e falar qual cor você quer. Mas esse cor
precisa ser digita ou no geom_point ou no geom_line ou em ambos. Você sempre
escrever “aes”, mas por acaso no ggplot você não usa o aes quando se refere a uma
única cor. Não sei o porquê e nem vocês precisam saber.
Podemos também que a cor seja separada por quem é fumante e quem não é
fumante. Só em vez de escrever na cor “red” você escreve o nome da variável que
você quer separar.
Só o geom_line
E só o geom_text
E outra dica que posso dar é usar alguma thema. Darei uma lista no material desse
curso, mas uma que eu gosto é a theme_light().
ggplot(base, aes(peso,altura, label = nome,vjust = -1)) + geom_point(aes(colour =
fumante)) + geom_line(aes(colour = fumante)) + geom_text() +
scale_colour_manual(values = c("blue", "green")) + theme_light()
Até a próxima aula!!
Gráfico de barra
Podemos escrever FILL para colocar a cor. No gráfico de linha você escreve
COLOUR, mas no gráfico de barra você escreve FILL.
ggplot(base2,aes(x = fumante, y = qtd, fill=genero)) + geom_bar(stat="identity")
Eu, particulamente, não gosto desse tipo de gráfico e ele não é muito indicado,
principalmente se houvesse mais do que três levels.
Só isso.
https://www.r-bloggers.com/detailed-guide-to-the-bar-chart-in-r-with-ggplot/
O gráfico de pizza no R é feito também utilizando ggplot. Mas tem que fazer algumas
manipulações. O que eu quero que você entenda é que você aqui precisa deixar o
racional, o lógico de lado e apenas deixar fluir. Digamos que você precisa “decorar”
como é feito esse tipo de gráfico e sempre aproveitar esse código.
Vou fazer dois gráficos de pizza e dois de donuts com a variável gênero e fumante.
base_pizza <- base %>% group_by(genero) %>% summarise(qtd = n()) %>%
mutate(prop = qtd/sum(qtd)) %>% mutate(loc = cumsum(prop) - 0.5*prop) %>%
arrange(desc(genero))
Essa coluna “loc” que é a localização ela serve apenas para o número ou percentual
ficar no centro do gráfico de pizza. Então você apenas precisa decorar e sempre criar
uma coluna escrevendo cumsum(prop) - 0.5*prop, ficando:
https://www.datanovia.com/en/blog/how-to-create-a-pie-chart-in-r-using-ggplot2/
Mapa
library(geobr)
library(dplyr)
library(ggplot2)
View(juntos)
R MarkDown - teoria
Eu particupalmente não gosto que gere uma nova tela toda vez que eu rodar. Gosto
que imprima aqui no Viewer.
Logo no início, temos o título do documento que será impresso e temos o formato que
será impresso.
Caso você não queira que seja gerado um html, mas sim um documento no word,
você só precisa escrever: word_document.
Você pode também clicar na setinha aqui no Knit e gerar um word com um clique.
Até a próxima aula!!
Cabeçalhos
Para começar um código no R Markdown, você precisa digitar três acentos graves (é o
acento da crase). Não é apóstrofo ‘ ou aspas “. Nem acento agudo ´. É o acento
grave! (o mesmo utlizado na crase!)
Depois a gente chave, r e fecha a chave.
E Depois fecha com três acentos da crase também.
Qualquer código que você quiser digitar aqui no R Markdown, terá que ser digitado
aqui dentro.
Por exemplo
x <- c(2,,2)
sum(x)
R MarkDown – na prática
seq(0, 50, 5)
Outras funções que frequentemente utilizamos no R são as que geram números
aleatórias. Tais funções são bastante importantes nos processos de amostragem. As
funções mais utilizadas para essa tarefa são: sample() e runif(). Vamos aos
exemplos:
Podemos gerar também valores aleatórios de variáveis do tipo character. Para isso,
podemos utilizar a função sample() e definir um vetor de onde deverá ser selecionada
a amostra.
Como exemplo, podemos gerar 5 valores aleatórios entre as variáveis categóricas
“masculino” e “feminino”. Observe que, como o número de valores gerados supera o
conjunto de variáveis, devemos definir a possibilidade de repetição (replace = TRUE).
sample(c("masculino", "feminino"), 5, replace = TRUE)