profa. suzi [email protected] euler.mat.ufrgs.br/~camey

24
R Profa. Suzi [email protected] http://euler.mat.ufrgs.br/ ~camey/

Upload: adolfo

Post on 08-Jan-2016

24 views

Category:

Documents


1 download

DESCRIPTION

R. Profa. Suzi [email protected] http://euler.mat.ufrgs.br/~camey/. Rweb. http://www.math.montana.edu/Rweb/. Tinn-R. http://sourceforge.net/projects/tinn-r. Aula 18/04/08 Maiores detalhes: http://leg.ufpr.br/~paulojus/embrapa/Rembrapa/. Aritmética e Objetos Operações aritméticas - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

R

Profa. Suzi

[email protected]

http://euler.mat.ufrgs.br/~camey/

Page 2: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Rweb

http://www.math.montana.edu/Rweb/

Page 3: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tinn-R

http://sourceforge.net/projects/tinn-r

Page 4: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Aula 18/04/08Maiores detalhes: http://leg.ufpr.br/~paulojus/embrapa/Rembrapa/

Aritmética e Objetos Operações aritméticas Valores faltantes e especiais Objetos

Tipos de objetos Vetores Matrizes Arrays Data-frames Listas

Exercícios

Page 5: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Aritmética e Objetos

Operações aritméticas

>help(Arithmetic)

sqrt raiz quadrada

abs valor absoluto (positivo)

sin cos tan funções trigonométricas

asin acos atan funções trigonométricas inversas

sinh cosh tanh funções hiperbólicas

asinh acosh atanh funções hiperbólicas inversas

exp log exponencial e logaritmo natural

log10 logaritmo base-10

Page 6: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Aritmética e Objetos

Valores faltantes e especiais

NA: Not Available, denota dados faltantes. Note que deve utilizar maiúsculas.

NaN: Not a Number, denota um valor que não é representável por um número.

Inf ; -Inf: mais ou menos infinito. exp(1): e pi:

Page 7: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Aritmética e Objetos

Objetos O R é uma linguagem orientada à

objetos: variáveis, dados, matrizes, funções, etc são armazenados na memória ativa do computador na forma de objetos.

>ls(): lista os objetos guardados na memória ativa

Page 8: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Aritmética e Objetos

Como atribuir valores aos objetos:

> x <- 25

> x * sqrt(x) -> x1

> x2.1 = sin(x1)

Page 9: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Aritmética e Objetos

Como NÃO atribuir valores aos objetos:

> 99a <- 10: nome do objeto deve começar com letra.

> a1 <- sqrt 10: sqrt é uma função portanto exige ( ).

> a-1 <- 99: não aceita hífen.

> sqrt(x) <- 10: não faz sentido

Page 10: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Aritmética e Objetos

Exemplos de nomes de objetos a serem evitados: c q  s  t  C  D  F  I  T   diff  exp  log  mean  pi  range  rank  var

Exemplos de nomes reservados:

FALSE  Inf  NA  NaN  NULL TRUE         break  else  for  function  if  in  nextrepeat  while

Page 11: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Vetores

  função c() ("c" de concatenar) é usada para

criar um vetor Ex.: x<-c(2,3,52,9)

Os colchetes [ ] são usados para indicar seleção de elementos. Ex.: x[2]

Page 12: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Vetores As funções rep(), seq() e o símbolo ":" são usadas para

facilitar a criação de vetores que tenham alguma lei de formação.   :

Ex.: xx <- 100:1 >help(rep)

Ex.: > rep(1:4, each = 12) > rep(1:4, rep(12, 4)) > rep(rep(1:3, each = 4), 4) > rep(1:4, 12)

>help(seq) Ex.: >seq(1,10,1) 

>seq(1,10,2) > seq(10,1,3) > seq(10,1,-3)

Page 13: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Vetores Operações com vetores> x <- 1:10 > x + 2 > x * 2 > sqrt(x) > y <- 21:30 >  x+y  [1] 22 24 26 28 30 32 34 36 38 40 > z <- c(1,2) > x+z > w <- c(1,2,1) > x + w

Page 14: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Vetores Caracteres e Fatores

Caracteres> c1 <- "Hello" > c2 <- c("Yes",'Maybe',"No") > c3 <- rep("Monkey",4) > c4 <- rep(c("Monkey","Bucket"),3)

Fatores> c5 <- c('M','F','F','F','M','M') > f5 <- as.factor(c5) > levels(f5) > levels(f5) <- c("Female","Male") > alt <- c(175, 184, 180, 182, 176, 174, 169) > sexo <- as.factor(rep(0:1, c(4,3))) > levels(sexo) <- c("homem", "mulher") > table(sexo) > mean(alt) [1] 177.1429 > by(alt, sexo, mean) > ave(alt, sex)

Page 15: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Vetores

Valores Lógicos gt5 <- x > 5

Operadores Lógicos> x > 2 & x < 7 x < 2 | x >7

"TRUE" e "FALSE" como números...> y <- x > 3 > y*2  > sum(y)

Page 16: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Vetores

Índices> y <- x[2] > y <- x[c(1,3,5)] > x[4:7] > x[12]

Índices Negativos> x[-3] > x[c(3,4,7)]> x[-c(3,4,7)] > x[-length(x)] > x[length(x):1]

Índices Lógicos> x <- c(6,5,6,4,4,3,4,2,3,4) > y <- c(5,3,4,2,6,5,4,5,4,3) > xeq4 <- x == 4> y[xeq4] > y[x == 4] > x[x > 5] > x <- c(3, 5, 3, 2, 5, 7, 5) > y <- c(23, 21, 20, 12, 20, 30, 29) > x == 5 > y[x == 5]

Page 17: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Matrizes Criando Matrizes

> x <- 1:12 > xmat <- matrix(x,ncol=3) > matrix(x,ncol=3,byrow=T)> xmat<-matrix(0,2,3)> x <- matrix(10:1,ncol=2) > y <- cbind(x,1:5) > y <- rbind(y,c(99,99,99)) > z <- cbind(y,rep(88,6),y)

Informações sobre a matriz> x1 <- matrix(1:12,ncol=4) > dim(x1) > summary(x1) > summary(as.vector(x1))

Page 18: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Matrizes

Operações com matrizes Mesmas operações dos vetores

> x1 <- matrix(1:6,ncol=2)  > x2 <- matrix(6:1,ncol=3)  > x1 %*% x2 > t(x1)*x2

Page 19: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Matrizes Índices das matrizes

> z[2,5] > z[,4] > z[3,] > z[c(1,3,5),] > z[,5:7] > z[c(2,3),c(4,6)]

Voce pode querer selecionar as pessoas (linhas) que atendem a um certo critério (idade, sexo, etc). Vamos definir uma matrix onde as colunas armazenam: índices 1 a 5, idade e sexo (codificado com 0/1) de cinco pessoas. > people <- cbind(c(1,2,3,4,5),c(43,55,52,23,46),c(1,1,0,1,1)) > oldies <- people[people[,2]>50,] > people[,2] > people[,2]>50 > people[people[,2]>50 , ]

Page 20: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Arrays

> ar1<-array(1:24,dim=c(3,4,2)) > ar1[,2:3,] > ar1[2,,1] > sum(ar1[,,1]) > sum(ar1[1:2,,1]) > dimnames(ar1) > dimnames(ar1)<-list(c("Baixo","Médio","Alto"),paste("col",+1:4,sep=""),c("Masculino","Feminino"))

Page 21: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Arrays Veja agora um exemplo de dados já incluído no R no formato de array.

> data(Titanic) > Titanic > help(Titanic)

Quantas pessoas havia no total? > sum(Titanic)

Quantas pessoas havia na tripulação (crew)?> sum(Titanic[4, , , ])

Quantas pessoas sobreviveram e quantas morreram?> apply(Titanic, 4, sum)

Quantas crianças sobreviveram?> sum(Titanic[, , 1, 2])

Quais as proporções de sobreviventes entre homens e mulheres?> apply(Titanic, 2, sum) > apply(Titanic[, , , 2], 2, sum) > 100 * apply(Titanic[, , , 2], 2, sum)/apply(Titanic, 2, sum)

Page 22: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Data-frames

Vetores, matrizes e arrays forçam todos os elementos a serem do mesmo "tipo"i.e., ou numérico ou caracter. O "data-frame"é uma estrutura semelhante à uma matriz porém com cada coluna sendo tratada separadamente.

> d1 <- data.frame(X = 1:10, Y = c(51, 54, 61, 67, 68, 75, 77, 75, 80, 82))> names(d1) > d1$X > d1$Y > plot(d1)> plot(d1$X, d1$Y) > d3 <- expand.grid(1:3,4:5) > d4 <- data.frame(X = letters[1:10], Y = c(51, 54, 61, 67, 68, 75, 77, 75,

  +     80, 82))

Page 23: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Tipos de objetos: Listas

Listas são estruturas genéricas e flexíveis que permitem armazenar diversos formatos em um único objeto.

  > lis1 <- list(A = 1:10, B = "THIS IS A MESSAGE", C = matrix(1:9, ncol = 3))

Uma lista é portanto uma coleção de objetos. Para listas há duas opções para se selecionar elementos: colchetes [ ] ou colchetes duplos [[ ]]. Entretanto os resultados retornados por cada um destes é diferente.

  > lis1 <- list(nomes = c("Pedro", "Joao", "Maria"), mat = matrix(1:6,nc = 2))  > lis1[1]   > lis1[2]   > lis1[[2]]

Page 24: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey

Exercícios

http://leg.ufpr.br/~paulojus/embrapa/Rembrapa/Rembrapase6.html#x7-310006.8