R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.
Transcript of R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.
![Page 1: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/1.jpg)
R - Introdução à Programação
Suzi CameyDepartamento Estatística - UFRGS
![Page 2: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/2.jpg)
Agradecimento
Prof. Joaquim Pereira Neto UNEB - Universidade do Estado da
BahiaDepartamento de Tecnologia e Ciências
Sociais
R_STAT -> Arquivos
![Page 3: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/3.jpg)
Introdução ao R Universidade de Auckland, 1995
Robert Gentleman, Ross Ihaka
http://www.r-project.org
![Page 4: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/4.jpg)
Instalando o R para Windows
Dowload: http://www.r-project.org
Pode ser instalado e executado em CD ou pen drive.
Acesso a Internet: facilita, mas não é fundamental.
![Page 5: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/5.jpg)
Tinn-R Editor de código do R
Download: http://sourceforge.net/projects/tinn-r/
Dicas de uso: Help>This version>Portuguese>leiame.html
![Page 6: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/6.jpg)
Operações com o R
> 2 + 3*4 # prioridade da operação multiplicação[1] 14
> 3/2+1 # prioridade da operação divisão[1] 2.5
> 2 * 3 ^ 2 # potências são indicadas por ^ ou ** [1] 18
Tudo que está depois do símbolo #, define um comentário e é ignorada pelo R
![Page 7: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/7.jpg)
Operações com o R
No R todas as funções têm a forma:>função(argumento obrigatório,argumento opcional)
> sqrt(2) # Encontra a raiz quadrada de 2[1] 1.414214
> sin(pi/6) # Encontra o seno de 30º[1] 0.5
> log( ,3) #ver tips Tinn-R
> ?log ou > help(log) ou > help.search(log)
![Page 8: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/8.jpg)
Operações com o RFunção Descrição Operadores Descrição
sqrt( ) raiz quadrada + adição
abs( ) valor absoluto - subtração
exp( )exponencial de base “e”
* multiplicação
log10( )logaritmo na base 10
/ divisão
log( )logaritmo na base “e”
** ou ^ potência
sin( )
cos( )
tan( )
funções trigonométricas
asin( )
acos( )
atan( )
funções trigonométricas inversas
![Page 9: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/9.jpg)
Como o R armazena objetos
O R é uma linguagem orientada a objetos.
Objetos para o R: banco de dados, como uma tabela, variáveis, vetores, matrizes, funções, etc.
Objetos são armazenados na memória ativa do computador.
![Page 10: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/10.jpg)
Como o R armazena objetos
Criar um objeto qualquer no R: usar o operador de atribuição “<-“
> x<-sqrt(9)> x> sqrt(9)->x> y=log10(100)> x+y
![Page 11: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/11.jpg)
Como o R armazena objetos
Nomes de objetos (tabelas, variáveis, etc.) devem começar sempre com uma letra. Maiúsculas e minúsculas são consideradas diferentes.
Exs.:> x1 <-10> x.1 <-10> x_1 <-10> 1x <-10
![Page 12: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/12.jpg)
Workspace
Cada vez que o R é aberto inicia-se uma nova sessão.
A coleção de objetos criados durante uma sessão R é denominada de workspace.
Todos os objetos criados podem ser salvos em um arquivo denominado .Rdata.
No final de cada sessão o R sempre pergunta: "Save workspace image?" .
![Page 13: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/13.jpg)
Workspace
Mudando o diretório de trabalho:
Via Menu: Arquivo>Mudar dir...
setwd('C:/User/Prof114/')
![Page 14: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/14.jpg)
Workspace
O R armazena um histórico de comandos usados na sessão em um arquivo com extensão “.Rhistory”.
Como os comandos ficam acumulados, para você recuperar comandos, basta usar as teclas de setas de deslocamento vertical, para recuperá-los.
![Page 15: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/15.jpg)
Listar e eliminar objetos
Listar:> objects()> ls()
Eliminar todos os objetos:> rm() Eliminar os objetos x e y:> rm(x,y)
![Page 16: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/16.jpg)
Tipos de objetos
Sete tipos básicos de objetos, classificados em duas categorias:
Objetos atômicos – contém apenas dados de um único tipo: vector, matrix, array, factor, ts.
Objetos não atômicos – contém valores de todos os tipos: data.frame, list.
![Page 17: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/17.jpg)
Tipos de objetos
Os objetos podem ainda ser classificados de acordo:
mode: refere-se à natureza dos seus elementos: logical, numeric, complex e character.
attributes: informa sobre a estrutura e conteúdo do objeto.
class: informa o tipo de objeto: vector, matrix, array, factor, ts, data.frame, list.
mode(x), attributes(x), class(x)
![Page 18: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/18.jpg)
Tipos de objetosOs elementos de um objeto pode ser:
logical : Modo binário, com valores T ou F (True ou False)
numeric : Números reais
complex : Números complexos, a + bi
character : Caracteres, "Maria“
![Page 19: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/19.jpg)
Tipos de objetos: Vetores Forma mais simples de armazenamento de dados.
Conjunto de elementos de um mesmo tipo: números , caracteres ou valores lógicos.
Os vetores apresentam dois atributos: length e mode.
![Page 20: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/20.jpg)
Tipos de objetos: Vetores
> numero<-3> numero[1] 3> mode(numero)[1] “numeric”
> fruta<-"banana”> fruta[1] "banana“
> mode(fruta)[1] "character”
![Page 21: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/21.jpg)
Tipos de objetos: Vetores
> x<-c(10.4, 5.6, 3.1, 6.4, 21.7)> x[1] 10.4 5.6 3.1 6.4 21.7> length(x)[1] 5> mode(x)[1] "numeric"
![Page 22: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/22.jpg)
Tipos de objetos: VetoresFunção Descrição Examplosscan lê valores
(qualquer tipo)scan()scan("meuarq")
c combina valores(qualquer tipo)
c(1,3,2,6)c("sim", “não")
rep repete valores(qualquer tipo)
rep(c(1,2), 3)
: seqüencias numéricas 1:51:-1
seq seqüencias numéricas seq(-pi, pi, .5)
![Page 23: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/23.jpg)
Tipos de objetos: Vetores
Função scan()> x<-scan()1: 10.4 5.6 3.1 6.4 21.76: Read 5 items> x[1] 10.4 5.6 3.1 6.4 21.7
![Page 24: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/24.jpg)
Tipos de objetos: Vetores
> frutas<-scan(what=" ", sep=",")1: banana,uva,manga4: Read 3 items> frutas[1] "banana" "uva" "manga"
![Page 25: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/25.jpg)
Tipos de objetos: Vetores Função rep()> x<-rep('a',5)> x[1] "a" "a" "a" "a" "a" > x<-rep(2,6)> x[1] 2 2 2 2 2 2
> x<-rep(c('s','n'), c(2,4))> x[1] "s" "s" "n" "n" "n" "n" > x<-rep(c(4, 5, 6), 2)> x[1] 4 5 6 4 5 6
![Page 26: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/26.jpg)
Tipos de objetos: Vetores Função seq()> x<-seq(-1,1,0.4)> x[1] -1.0 -0.6 -0.2 0.2 0.6 1.0
> x<-seq(-1,1,length=6)> x[1] -1.0 -0.6 -0.2 0.2 0.6 1.0
> x<-seq(-1, by=0.4, length=6)> x[1] -1.0 -0.6 -0.2 0.2 0.6 1.0
![Page 27: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/27.jpg)
Tipos de objetos: Vetores Geração de seqüências numéricas. > 1:10 [1] 1 2 3 4 5 6 7 8 9 10
O operador “:” (dois pontos) tem prioridade máxima numa expressão onde seja usado:
> 2*1:10 [1] 2 4 6 8 10 12 14 16 18 20
![Page 28: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/28.jpg)
Tipos de objetos: Vetores
Concatenação de vetores> x <- c(2, 3, 5, 2, 7, 1)> y <- c(10, 15, 12)> z <- c(x,y)> z[1] 2 3 5 2 7 1 10 15 12
![Page 29: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/29.jpg)
Tipos de objetos: Vetores Operações aritméticas
vetores num éricos e lógicos operações elemento a elemento, caso tenham a
mesma dimensão.
> peso<-c(62, 70, 52, 98, 90, 70)
> altura<-c(1.70, 1.82, 1.75, 1.94, 1.84, 1.61)
Calcular IMC para essas pessoas.> i.m.c<-peso/altura^2
> i.m.c
[1] 21.45329 21.13271 16.97959 26.03890 26.58318 27.00513
![Page 30: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/30.jpg)
Tipos de objetos: Vetores
Outras funções:
> max(peso)[1] 98> min(peso)[1] 52> range(peso)[1] 52 98
![Page 31: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/31.jpg)
Tipos de objetos: Vetores Outras funções:
> mean(peso)[1] 73.66667
> var(peso)[1] 298.2667
De outra forma:
> sum(x)/length(x)[1] 73.66667
> sum((x-mean(x))^2)/(length(x)-1)
[1] 298.2667
![Page 32: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/32.jpg)
Tipos de objetos: Vetores
Operador comparativo
Descrição Operador lógico Descrição
< menor que & (vetor) e x&y
> maior que&& (para avaliar condições)
e x&&y
<= menor ou igual | (vetor) ou x|y
>= maior ou igual || (para avaliar condições)
ou x&&y
== igual xor (exclusivo) ou xor(x , y)
!= diferente
![Page 33: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/33.jpg)
Tipos de objetos: Vetores
> x<-seq(-2, 2, by=0.5)> x[1] -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0
> x>=-1[1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
> x>=-1 & x<=1[1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
> x<=-1 | x>=1[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE
![Page 34: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/34.jpg)
Tipos de objetos: Vetores Vetores alfanuméricos> x<-paste(c("X"), 1:10, sep="-")> x [1] "X-1" "X-2" "X-3" "X-4" "X-5" "X-6" "X-7" [8] "X-8" "X-9" "X-10"
> xy<-paste(c("X","Y"), 1:10, sep="-")> xy [1] "X-1" "Y-2" "X-3" "Y-4" "X-5" "Y-6" "X-7" [8] "Y-8" "X-9" "Y-10”
![Page 35: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/35.jpg)
Tipos de objetos: Vetores Subconjunto de vetores> x<-c(0, 8, 9, 7, 4, 2, 10, 0, 2, 1)> x1<-x[6]> x1[1] 2
> x2<-x[2:6]> x2[1] 8 9 7 4 2
> x3<-x[c(2, 4, 8)]> x3[1] 8 7 0
![Page 36: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/36.jpg)
Tipos de objetos: Vetores Subconjunto de vetores> x6<-x[c(-1, -2, -10)]> x6[1] 9 7 4 2 10 0 2
> frutas<-c(5, 10, 1, 20)> frutas[1] 5 10 1 20> names(frutas)<-c("laranja", "banana", "maçã", "pera") > jantar<-frutas[c("maçã", "laranja")]> jantar maçã laranja
![Page 37: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/37.jpg)
Tipos de objetos: Vetores Subconjunto de vetores> x<-c(0, 8, 9, 7, 4, 2, 10, 0, 2, 1)> xa<-x[x > 4]> xa[1] 8 9 7 10
> xb<-x[x > 2 & x <= 8] > xb[1] 8 7 4
![Page 38: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/38.jpg)
Tipos de objetos: Matrizes Disposição bidimensional dos dados em linhas e
colunas.
Conjunto de elementos de um mesmo tipo: números , caracteres ou valores lógicos.
Matrizes apresentam quatro atributos: length – dá o número de elementos da matriz mode – dá o tipo de valores dim – dá o número de linhas e colunas dimnames – dá os nomes das linhas e colunas
![Page 39: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/39.jpg)
Tipos de objetos: Matrizes matrix(data, nrow=m, ncol=n, byrow=T ou F)
notas.matrix<-matrix(scan(), ncol=3, byrow=T) 1: 7.5 6.9 8.2 8.2 7.3 6.7 5.9 6.8 9.0 7.8 7.0 7.5 8.8 7.9 6.416: > notas.matrix [,1] [,2] [,3][1,] 7.5 6.9 8.2[2,] 8.1 7.3 6.7[3,] 5.9 6.8 9.0[4,] 7.8 7.0 7.5[5,] 8.8 7.9 6.4
![Page 40: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/40.jpg)
Tipos de objetos: Matrizes Função “cbind”
> notas.p1<-c(7.5, 8.1, 5.9, 7.8, 8.8)> notas.p2<-c(6.9, 7.3, 6.8, 7.0, 7.9)> notas.p3<-c(8.2, 6.7, 9.0, 7.5, 6.4)> notas.matrix<-cbind(notas.p1, notas.p2, notas.p3)> notas.matrix notas.p1 notas.p2 notas.p3[1,] 7.5 6.9 8.2[2,] 8.1 7.3 6.7[3,] 5.9 6.8 9.0[4,] 7.8 7.0 7.5[5,] 8.8 7.9 6.4
![Page 41: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/41.jpg)
Tipos de objetos: Matrizes Função “rbind”> aluno1<-c(7.5, 6.9, 8.2)> aluno2<-c(8.1, 7.3, 6.7)> aluno3<-c(5.9, 6.8, 9.0)> aluno4<-c(7.8, 7.0, 7.5)> aluno5<-c(8.8, 7.9, 6.4)> notas.matrix<-rbind(aluno1,aluno2,aluno3,aluno4,aluno5)> notas.matrix [,1] [,2] [,3]
aluno1 7.5 6.9 8.2aluno2 8.1 7.3 6.7aluno3 5.9 6.8 9.0aluno4 7.8 7.0 7.5aluno5 8.8 7.9 6.4
![Page 42: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/42.jpg)
Tipos de objetos: Matrizes Outras maneiras:> notas.matrix<-
matrix(c(7.5,6.9,8.2,8.1,7.3,6.7,5.9,6.8, 9.0,7.8,7.0,7.5,8.8,7.9,6.4), ncol=3, byrow=T)
> notas.matrix<-c(7.5,6.9,8.2,8.1,7.3,6.7,5.9,6.8, 9.0,7.8,7.0,7.5,8.8,7.9,6.4)> dim(notas.matrix) <-dim(5,3)> notas.matrix<-matrix(notas.matrix, ncol=3)> notas.matrix<-matrix(notas.matrix, nrow=5)
![Page 43: R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS.](https://reader035.fdocument.pub/reader035/viewer/2022081502/552fc10c497959413d8c333b/html5/thumbnails/43.jpg)
Tipos de objetos: Listas Lista é um objeto constituído por uma coleção ordenada de
objetos. É o tipo de objeto mais flexível do R. É a mais freqüente escolha para retornar valores de uma
análise do R. >dados<-list(pai="Jose", esposa="Maria", n.filhos=3,
idade.filhos=c(4, 7, 9))>dados >dados$pai >dados$pai<-”José”>dados[1]>dados[[1]]>dados[[4]][2]