430 likes | 506 Views
R - Introdução à Programação. Suzi Camey Departamento Estatística - UFRGS. Agradecimento. Prof. Joaquim Pereira Neto UNEB - Universidade do Estado da Bahia Departamento de Tecnologia e Ciências Sociais R_STAT -> Arquivos. Introdução ao R. Universidade de Auckland, 1995
E N D
R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS
Agradecimento Prof. Joaquim Pereira Neto UNEB - Universidade do Estado da Bahia Departamento de Tecnologia e Ciências Sociais R_STAT -> Arquivos
Introdução ao R • Universidade de Auckland, 1995 • Robert Gentleman, Ross Ihaka • http://www.r-project.org
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.
Tinn-R • Editor de código do R • Download: http://sourceforge.net/projects/tinn-r/ • Dicas de uso: Help>This version>Portuguese>leiame.html
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
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)
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.
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
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
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?" .
Workspace • Mudando o diretório de trabalho: • Via Menu: Arquivo>Mudar dir... • setwd('C:/User/Prof114/')
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.
Listar e eliminar objetos • Listar: > objects() > ls() • Eliminar todos os objetos: > rm() • Eliminar os objetos x e y: > rm(x,y)
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.
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)
Tipos de objetos Os 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“
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.
Tipos de objetos: Vetores > numero<-3 > numero [1] 3 > mode(numero) [1] “numeric” > fruta<-"banana” > fruta [1] "banana“ > mode(fruta) [1] "character”
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"
Tipos de objetos: Vetores • Função scan() > x<-scan() 1: 10.4 5.6 3.1 6.4 21.7 6: Read 5 items > x [1] 10.4 5.6 3.1 6.4 21.7
Tipos de objetos: Vetores > frutas<-scan(what=" ", sep=",") 1: banana,uva,manga 4: Read 3 items > frutas [1] "banana" "uva" "manga"
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
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
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
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
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
Tipos de objetos: Vetores • Outras funções: > max(peso) [1] 98 > min(peso) [1] 52 > range(peso) [1] 52 98
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
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
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”
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
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
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
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
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.4 16: > 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
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
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.2 aluno2 8.1 7.3 6.7 aluno3 5.9 6.8 9.0 aluno4 7.8 7.0 7.5 aluno5 8.8 7.9 6.4
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)
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]