R - Introdução à Programação Suzi Camey Departamento Estatística - UFRGS

Preview:

Citation preview

R - Introdução à Programação

Suzi CameyDepartamento Estatística - UFRGS

Agradecimento

Prof. Joaquim Pereira Neto UNEB - Universidade do Estado da

BahiaDepartamento 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)

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

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 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“

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: 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)

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 

Tipos de objetos: Vetores

> frutas<-scan(what=" ", sep=",")1: banana,uva,manga4: 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

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

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.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

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.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

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]

Recommended