Profa. Suzi [email protected] euler.mat.ufrgs.br/~camey
description
Transcript of Profa. Suzi [email protected] euler.mat.ufrgs.br/~camey
![Page 2: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/2.jpg)
Rweb
http://www.math.montana.edu/Rweb/
![Page 3: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/3.jpg)
Tinn-R
http://sourceforge.net/projects/tinn-r
![Page 4: Profa. Suzi camey@mat.ufrgs.br euler.mat.ufrgs.br/~camey](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/4.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/5.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/6.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/7.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/8.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/9.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/10.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/11.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/12.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/13.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/14.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/15.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/16.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/17.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/18.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/19.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/20.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/21.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/22.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/23.jpg)
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](https://reader035.fdocumentos.tips/reader035/viewer/2022070405/56813e76550346895da8938e/html5/thumbnails/24.jpg)
Exercícios
http://leg.ufpr.br/~paulojus/embrapa/Rembrapa/Rembrapase6.html#x7-310006.8