Buscar

Introducao ao R Aula 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introduc¸a˜o ao R: Aula 1
October 3, 2017
1 Introduc¸a˜o
R e´ um software gratuito e de co´digo aberto que proporciona um o´timo ambiente
para manipulac¸a˜o de base de dados e ana´lises estat´ısticas, com recursos gra´ficos
de alta qualidade.
Foi criado originalmente por Ross Ihaka e por Robert Gentleman no departa-
mento de Estat´ıstica da Universidade de Auckland, Nova Zelaˆndia, e foi de-
senvolvido por um esforc¸o colaborativo de pessoas em va´rios locais do mundo.
Principais vantagens de utilizar o R:
ˆ Software livre;
ˆ co´digo aberto;
ˆ pacotes para diversas a´reas de conhecimentos;
ˆ programa´vel...
Desvantagens de utilizar o R:
ˆ Fatal de integralizac¸a˜o entre os pacotes;
ˆ Curva de aprendizagem lenta.
Mais detalhes sobre o projeto, colaboradores, documentac¸a˜o, download do soft-
ware e diversas outras informac¸o˜es podem ser encontradas na pa´gina oficial do
projeto em: http://www.r-project.org.
2 Primeiros Passos
Apo´s iniciar o RStudio, criar SEMPRE um arquivo R Script. Nele podemos
escrever e executar linhas de comando e salva´-los para utilizar depois, evitando
1
re-trabalho. Utilize Ctrl+R ou Ctrl+Enter para executar uma linha, ou se-
lecione as linhas e em seguida a execute. O output das linhas de comando
aparecera´ na janela CONSOLE.
A janela Environment conte´m o histo´rico de todos os objetos que foram criados.
A quarta janela conte´m o output gra´fico, help, pacotes e outros.
Criando objetos: Os principais objetos que podemos trabalhar no R, sa˜o vetores,
matrizes e data frames (banco de dados).
ˆ Vetores: podem ser classificados como, numeric, character, logical.
> #A forma mais ba´sica de criar um vetor e´ utilizando a
> # func¸~ao c().
> v1 = c(1,3,5,7,9);v1
[1] 1 3 5 7 9
> #Vetor de caracteres
> v2 = c("Casado", "Solteiro");v2 #character
[1] "Casado" "Solteiro"
> #Func¸~ao rep(): replica valores.
> v3 = rep(2, times = 10);v3 #integer
[1] 2 2 2 2 2 2 2 2 2 2
> v4 = rep(c(1, 2), times = 5);v4 #integer
[1] 1 2 1 2 1 2 1 2 1 2
> #Gerando uma amostra de uma distribuic¸~ao normal
> v5 = rnorm(5, mean = 0, sd = 1);v5 #numeric
[1] 0.9940225 -0.3760856 2.2620730 -0.1498943 0.1329926
> v6 = v1>=5;v6 #logical
[1] FALSE FALSE TRUE TRUE TRUE
ˆ Fatores: Um vetor de grupos ou classificac¸a˜o discreta
> fac = c(1,0,0,0,1,2);fac
[1] 1 0 0 0 1 2
> fac1 = factor(fac, levels=c(0,1), label = c("N~ao","Sim"))
> fac1
2
[1] Sim N~ao N~ao N~ao Sim <NA>
Levels: N~ao Sim
> fac2 = factor(fac,levels=c(1,0,2),label=c("Sim","N~ao","Talvez"))
> fac2
[1] Sim N~ao N~ao N~ao Sim Talvez
Levels: Sim N~ao Talvez
> fac3 = factor(fac);fac3
[1] 1 0 0 0 1 2
Levels: 0 1 2
ˆ Matrizes:
> M1 = matrix(c(1,2,3,4), nrow = 2, ncol = 2);M1
[,1] [,2]
[1,] 1 3
[2,] 2 4
> M2 = matrix(v3, nrow = 5);M2
[,1] [,2]
[1,] 2 2
[2,] 2 2
[3,] 2 2
[4,] 2 2
[5,] 2 2
> M3 = matrix(v3, ncol = 5);M3
[,1] [,2] [,3] [,4] [,5]
[1,] 2 2 2 2 2
[2,] 2 2 2 2 2
> M4 = matrix(v1, nrow = 5);M4
[,1]
[1,] 1
[2,] 3
[3,] 5
[4,] 7
[5,] 9
ˆ Data Frame:
> d1=data.frame(x=v1, y=v4);d1
3
x y
1 1 1
2 3 2
3 5 1
4 7 2
5 9 1
6 1 2
7 3 1
8 5 2
9 7 1
10 9 2
> d2=data.frame(x0 = rep(1, 10), x1 = v3,
+ y = rnorm(10, mean = 0, sd = 1));d2
x0 x1 y
1 1 2 1.5079057
2 1 2 -0.1465891
3 1 2 0.2764728
4 1 2 0.9340411
5 1 2 1.3042643
6 1 2 1.0650600
7 1 2 0.4537975
8 1 2 0.1134734
9 1 2 1.7583218
10 1 2 1.7266573
Para realizar uma boa ana´lise de dados, e´ necessa´rio conhecer o tipo de infor-
mac¸a˜o que estamos trabalhando.
> #Utilize a func¸~ao str(), ou a func¸~ao class(), para saber qual o
> #tipo do objeto.
> str(v1);class(v1)
num [1:5] 1 3 5 7 9
[1] "numeric"
> str(v4);class(v4)
num [1:10] 1 2 1 2 1 2 1 2 1 2
[1] "numeric"
> str(v5);class(v5)
num [1:5] 0.994 -0.376 2.262 -0.15 0.133
[1] "numeric"
4
> str(v6);class(v6)
logi [1:5] FALSE FALSE TRUE TRUE TRUE
[1] "logical"
> str(fac2);class(fac2)
Factor w/ 3 levels "Sim","N~ao","Talvez": 1 2 2 2 1 3
[1] "factor"
> str(M1);class(M1)
num [1:2, 1:2] 1 2 3 4
[1] "matrix"
> str(d2);class(d1)
'data.frame': 10 obs. of 3 variables:
$ x0: num 1 1 1 1 1 1 1 1 1 1
$ x1: num 2 2 2 2 2 2 2 2 2 2
$ y : num 1.508 -0.147 0.276 0.934 1.304 ...
[1] "data.frame"
3 Operac¸o˜es entre Atributos
Com o R podemos ter infinitos recursos, uns dos mais simples e´ a manipulac¸a˜o
entre os objetos:
ˆ Soma/Subtrac¸a˜o:
> v1;2+v1;v1-2
[1] 1 3 5 7 9
[1] 3 5 7 9 11
[1] -1 1 3 5 7
> v3;v4;v3+v4
[1] 2 2 2 2 2 2 2 2 2 2
[1] 1 2 1 2 1 2 1 2 1 2
[1] 3 4 3 4 3 4 3 4 3 4
5
> M1;10+M1;M1+M1
[,1] [,2]
[1,] 1 3
[2,] 2 4
[,1] [,2]
[1,] 11 13
[2,] 12 14
[,1] [,2]
[1,] 2 6
[2,] 4 8
ˆ Multiplicac¸a˜o/Divisa˜o:
> v3;2*v3;v3/2
[1] 2 2 2 2 2 2 2 2 2 2
[1] 4 4 4 4 4 4 4 4 4 4
[1] 1 1 1 1 1 1 1 1 1 1
> M1;2*M1;M1/2
[,1] [,2]
[1,] 1 3
[2,] 2 4
[,1] [,2]
[1,] 2 6
[2,] 4 8
[,1] [,2]
[1,] 0.5 1.5
[2,] 1.0 2.0
> #Multiplicac¸~ao entre Matrizes
> M1;M3;M1%*%M3
[,1] [,2]
[1,] 1 3
[2,] 2 4
[,1] [,2] [,3] [,4] [,5]
[1,] 2 2 2 2 2
[2,] 2 2 2 2 2
6
[,1] [,2] [,3] [,4] [,5]
[1,] 8 8 8 8 8
[2,] 12 12 12 12 12
> #Multiplicac¸~ao entre um vetor e uma matriz
> M3%*%v1
[,1]
[1,] 50
[2,] 50
Observac¸a˜o: o vetor e´ interpretado pelo software com uma matriz coluna.
ˆ Transposto e Inversa de uma Matriz:
> # Para transpor uma matriz utilize a func¸~ao t():
> M1;t(M1)
[,1] [,2]
[1,] 1 3
[2,] 2 4
[,1] [,2]
[1,] 1 2
[2,] 3 4
> # Para calcular a inversa de uma matriz utilize a func¸~ao solve:
> solve(M1)
[,1] [,2]
[1,] -2 1.5
[2,] 1 -0.5
4 Manipulando Vetores e Matrizes
Podemos pegar elementos espec´ıficos de um vetor ou uma matriz:
ˆ Selecionando elementos de um vetor:
> #Secinando o terceiro elemento do vetor:
> v1;v1[3]
[1] 1 3 5 7 9
[1] 5
> #Secinando os 3 primeiros elementos do vetor:
> v1;v1[1:3]
7
[1] 1 3 5 7 9
[1] 1 3 5
> #Secinando o segundo e o u´ltimo elemento do vetor:
> v1;v1[c(2,5)]
[1] 1 3 5 7 9
[1] 3 9
> #Secinando os elementos que s~ao maiores ou iguais a 3:
> v1;v1>=3;v1[v1>=3]
[1] 1 3 5 7 9
[1] FALSE TRUE TRUE TRUE TRUE
[1] 3 5 7 9
ˆ Selecionando elementos de uma matriz:
> #Selecinando o elemento da linha 1 e coluna 2:
> M2;M2[1, 2]
[,1] [,2]
[1,] 2 2
[2,] 2 2
[3,] 2 2
[4,] 2 2
[5,] 2 2
[1] 2
> #Selecinando os elementos da linha 1 e das colunas 1 e 2:
> M2;M2[1, c(1,2)];M2[1, 1:2]
[,1] [,2]
[1,] 2 2
[2,] 2 2
[3,] 2 2
[4,] 2 2
[5,] 2 2
[1] 2 2
[1] 2 2
> #Selecinando os elementos das linha 1 e 5, e colunas 1:
> M2;M2[c(1, 5), 1]
8
[,1] [,2]
[1,] 2 2
[2,] 2 2
[3,] 2 2
[4,] 2 2
[5,] 2 2
[1] 2 2
> #Selecinando toda a segunda coluna:
> M2;M2[, 2]
[,1] [,2]
[1,] 2 2
[2,] 2 2
[3,] 2 2
[4,] 2 2
[5,] 2 2
[1] 2 2 2 2 2
> #Selecinando toda a terceira linha:
> M2;M2[3, ]
[,1] [,2]
[1,] 2 2
[2,] 2 2
[3,] 2 2
[4,] 2 2
[5,] 2 2
[1] 2 2
4.1 Algumas Func¸o˜es U´teis
ˆ Somando elementos de um vetor:
> sum(v1)
[1] 25
> sum(M2[, 1])
[1] 10
> sum(M2[3, ])
[1] 4
9
ˆ Me´dia dos elementos de um vetor:
> mean(v1)
[1] 5
> mean(M2[, 1])
[1] 2
> mean(M2[3, ])
[1] 2
ˆ Selecionando o maior elemento de um vetor:
> max(v1)
[1] 9
> max(M2[, 1])
[1] 2
> max(M2[3, ])
[1] 2
ˆ Selecionando o menor elemento de um vetor:
> min(v1)
[1] 1
> min(M2[, 1])
[1] 2
> min(M2[3, ])
[1] 2
ˆ Nu´mero de elementos de um vetor, e a dimensa˜o de uma matriz:
> class(v1);length(v1)
[1] "numeric"
[1]5
> class(M2);dim(M2)
10
[1] "matrix"
[1] 5 2
> class(M2[, 1]);length(M2[, 1])
[1] "numeric"
[1] 5
> class(M2[3, ]);length(M2[3, ])
[1] "numeric"
[1] 2
5 Trabalhando com Banco de Dados
Como dito anteriormente, banco de dados no r sa˜o os objetos data.frama. Basi-
camente todos as te´cnicas de manipulac¸a˜o de se manipular os elementos de uma
matriz tambe´m serve para banco de dados.
5.1 Exportac¸a˜o e Importac¸a˜o de Banco de Dados
No R podemos exportar e importar banco de dados em diversos formatos (.txt,
.csv, .xls, .sav, .m), mas dependendo do formato em que se deseja impor-
tar/exportar os dados e´ necessa´rio utilizar pacotes espec´ıficos.
ˆ Importando no formato .txt
> # file = "local da base de dados\\nome da base de dados.txt"
> # read.table(file, head = T, dec = ",", sep = ";")
ˆ Importando no formato .csv
> # file = "local da base de dados\\nome da base de dados.csv"
> # read.csv(file, head = T, dec = ",", sep = ";")
Para manipular uma vara´vel do banco banco de dados devemos utilizar a seguinte
estrutura: nome banco dados$ nome variavel.
> # A func¸~ao head mostra os primeiros 5 valores de um
> # objeto (vetor, matrix, data frame)
> head(dados$wage)
[1] 5.10 4.95 6.67 4.00 7.50 13.07
> head(dados$education)
[1] 8 9 12 12 12 13
11
5.2 Estat´ıstica Descritiva
ˆ Me´dia: mean()
> mean(dados$wage)
[1] 9.024064
> mean(dados$education)
[1] 13.01873
ˆ Mediana: median()
> median(dados$wage)
[1] 7.78
> median(dados$education)
[1] 12
ˆ Variaˆncia: var()
> var(dados$wage)
[1] 26.41032
> var(dados$education)
[1] 6.840174
ˆ Desvio Padra˜o: sd()
> sd(dados$wage)
[1] 5.139097
> sd(dados$education)
[1] 2.615373
12
5.3 Selecionando Dados
Para fazer selec¸a˜o de linha e colunas de um banco de dados, de acordo com
algum crite´rio, utilizaremos a func¸a˜o subset().
> SUB.DADOS1 = subset(dados, education <=6,
+ select = c(wage, education, age, gender));
> SUB.DADOS1
wage education age gender
26 5.75 6 57 0
63 7.00 3 64 0
76 3.00 6 55 1
108 14.00 5 55 0
151 4.62 6 45 1
347 6.00 4 64 0
351 3.75 2 24 0
> SUB.DADOS2 = subset(dados, c(education <=6 & gender == 1),
+ select = c(wage, education, age, gender))
> SUB.DADOS2
wage education age gender
76 3.00 6 55 1
151 4.62 6 45 1
6 Exerc´ıcios
1. Utilize a func¸a˜o c() para criar o seguinte vetor no R:
2 10 5 8 20 3 9 1 4 6
Dica: Deˆ um nome para seu vetor. Ex.: vet = c(2, 10, ...)
2. Some todos os elementos do vetor que voceˆ acabou de criar. Qual a me´dia?
Qual o ma´ximo e o mı´nimo?
3. Selecione o primeiro e o quinto elemento do vetor do exerc´ıcio 1.
4. Crie um novo vetor com os 3 primeiros elementos do vetor criado no ex-
erc´ıcio 1.
5. Crie a seguinte matriz no R:
12 11 11
12 11 10
7 7 10
Deˆ um nome ao seu objeto. Ex.: mat = matrix(c(12, 11, ...)).
13
6. Selecione os elementos da segunda e terceira coluna, da segunda linha.
7. Crie um vetor selecionando a segunda coluna inteira.
8. Fac¸a a multiplicac¸a˜o entre a matriz do exerc´ıcio 5 e o vetor do exerc´ıcio 7.
9. Calcule a me´ida e a variaˆncia das varia´veis wage e experience, para as
mulheres. Dica: utilize a func¸a˜o subset().
10. Desafio: Gere uma amostra aleato´ria de uma distribuic¸a˜o binomial, da
seguinte maneira:
> b = rbinom(50, size = 10, prob = 0.7)
Identifique os valores que sa˜o maiores que 5, depois tire a me´dia desses
valores.
11. Desafio: A func¸a˜o cbind() inclui colunas em um banco de dados, por
exemplo:
> # Criando um vetor de uns do tamanho da base de dados:
> uns = rep(1, nrow(dados));head(uns)
[1] 1 1 1 1 1 1
> # A func¸~ao nrow() retorna o nu´mero de linhas de
> # um data.frame/matrix.
>
> # Criando um objeto "X" acrecentando o vetor de uns
> # como uma coluna na base de dados:
> X = cbind(uns, dados)
> # Para poder fazer operac¸~oes com matrizes:
> class(X) # N~ao e´ uma matriz.
[1] "data.frame"
> # A func¸~ao as.matrix() transforma um data frame em uma matriz.
> X = as.matrix(X)
> class(X) # Agora e´ uma matriz.
[1] "matrix"
Suponha que voceˆ quer estimar o seguinte modelo de regressa˜o:
wagei = β0 + β1educationi + �i.
Com a base de dados, estime os paraˆmetros do modelo pelo me´todo de
mı´nimos quadrados, ou seja:
βˆ = (XTX)−1XT y.
Na˜o esquec¸a de transformar o seu data frame em uma matriz.
Resposta:
14
[,1]
intercepto -0.7459797
education 0.7504608
15

Outros materiais