• Nenhum resultado encontrado

Pode-se designar nomes a objetos R usando a combinação A <- b(a recebe b), b -> A (b vai em A) ou A = b (A recebe b)

N/A
N/A
Protected

Academic year: 2021

Share "Pode-se designar nomes a objetos R usando a combinação A <- b(a recebe b), b -> A (b vai em A) ou A = b (A recebe b)"

Copied!
12
0
0

Texto

(1)

TOPICOS FUNDAMENTAIS

O R ´e uma linguagem de programa¸c˜ao que permite manipular dados, fazer calculos e gr´aficos estat´ısticos. O programa est´a disponivel gratuitamente em:

http://www.r-project.org/

H´a lista de discuss˜ao para troca de informa¸c˜oes, perguntas e respostas sobre o uso da linguagem R em: http://br.groups.yahoo.com/group/R STAT/

Referˆencias e/ou apostilas (portuguˆes e inglˆes) podem ser obtidas no seguinte site: http://cran.r-project.org/doc/contrib/

Funcionalidades

Pode-se designar nomes a objetos R usando a combina¸c˜ao A <- b(A recebe b), b -> A (b vai em A) ou A = b (A recebe b) > A <- 2 > B <- 3 > C = A + B > C [1] 5

Comandos colocados entre parenteses mostram o seu resultado na tela. > (C = A + B)

[1] 5

O R usa o ponto (.) como separador decimal, assim, se for importar dados que usam virgulas como separadores decimais, troque-as por pontos (.) usando comandos de localizar e substituir diretamente no arquivo fonte ou observe os parametros de convers˜ao no processo de leitura no R.

O R oferece comandos de ajuda.

help.start() ## inicia documenta¸c˜ao na forma de arquivos html visualizados no seu browser (Inglˆes) help (topico) ## inicia uma janela de ajuda sobre topico

Ou apenas com o ponto de interroga¸c˜ao (?) seguido do topico ?(topico)

Para sair com seguran¸ca do R (encerrar) use o comando q(). Um dialogo aparecera perguntando se quer ”salvar” o espa¸co de trabalho.

Save workspace image? [y/n/c]:

Usualmente se utiliza responder n (n˜ao)

Palavras Reservadas NA ## valores faltantes

NaN ## valor n˜ao representavel por n´umero Inf ## valor indeterminado

c q s t C D F I T diff exp log mean pi range rank var FALSE Inf NA NaN NULL TRUE break else for function if in next repeat while

(2)

Operadores Aritmeticos (reservado) + - * / soma, subtra¸c˜ao, produto e divis˜ao sqrt() raiz quadrada

abs() valor absoluto (positivo)

sin() cos() tan() fun¸c˜oes trigonometricas

asin() acos() atan() fun¸c˜oes trigonometricas inversas sinh() cosh() tanh() fun¸c˜oes hiperbolicas

asinh() acosh() atanh() fun¸c˜oes hiperbolicas inversas exp() log() exponencial e logaritmo neperiano log10() logaritimo na base-10

Operadores l´ogicos Os operadores l´ogicos s˜ao < : menor do que, <= : menor ou igual > : maior do que, >= : maior ou igual != : n˜ao igual (diferente)

Manipula¸c˜ao de objetos na Workspace

objects() mostra os objetos atualmente presentes na WS rm() remove um objeto da WS

rm(list = ls()) remove todos os objetos da WS <- ou -> direciona um conte´udo para um objeto = equivale a

<-O R como uma calculadora cient´ıfica > 3 + 5

[1] 8

> sin(20) + cos(17) - pi * 10 [1] -30.77814

Objetos (armazenados na memoria ou WS (workspace)) ˆ vetores; ˆ fatores; ˆ matrizes e arrays; ˆ listas; ˆ data-frames (tabelas); ˆ fun¸c˜oes; ˆ etc.

(3)

V E T O R E S > v2 <- c(1, 2, 4.6) > v2 [1] 1.0 2.0 4.6 > v2[2] [1] 2

## mostra o valor da segunda posi¸c˜ao do vetor > v2[2] <- 1.34

> v2

[1] 1.00 1.34 4.60

## coloca o valor 1,34 na segunda posi¸c˜ao do vetor Removendo elementos do vetor

> v3 <- c(2, 3, 10, 6, 13, 12) > (v3[5])

[1] 13

## perceba que o comando (v3[5]) mostra o valor da quinta posi¸c˜ao. > (v3[-5])

[1] 2 3 10 6 12

## com o comando (v3[-5]) remove o valor da quinta posi¸c˜ao. > (v3[-(2:4)])

[1] 2 13 12

## com o comando (v3[-(2:4)]) remove os valores entre a segunda e a quarta posi¸c˜ao (inclusive a segunda e quarta posi¸c˜ao).

Divis˜oes em um vetor > c(2.35, 1.45, 7.11)/5 [1] 0.470 0.290 1.422

## Divis˜ao simples dos elementos do vetor. > c(2.35, 1.45, 7.11)%/%5

[1] 0 0 1

(4)

> c(2.35, 1.45, 7.11)%%2 [1] 0.35 1.45 1.11

## Aparece apenas o resto da divis˜ao (1.45 n˜ao ´e divisivel por 2). Escrevendo uma equa¸c˜ao com comandos aninhados

> (v2.calc <- sin(n <- 1:6) + cos(v2) - pi * (v2/n)) [1] -1.7598194 -0.9668168 -4.7881413 -1.0018984 -1.5721183 [6] -2.8001224

Controlando sequˆencias em vetores num´ericos INTEIROS

Criando uma sequˆencia 0, 1, 2, ... ,10.

Quando dois n´umeros s˜ao separados por dois pontos o R entente como origem o n´umero do lado esquerdo e como final o n´umero do lado direito

> a = 0 > b = 10 > a:b [1] 0 1 2 3 4 5 6 7 8 9 10 > b:a [1] 10 9 8 7 6 5 4 3 2 1 0 > v2 <- 0:10 > v2 [1] 0 1 2 3 4 5 6 7 8 9 10 Vetores De Caracteres

O R tamb´em constr´oi vetores com objetos. Como por exemplo: > nomes <- c("Marta", "Regina", "Mario", "Pedro", + "Mauricio", "Marcelo", "Patricia", "Cintia", + "Abigail", "Renato")

> nomes

[1] "Marta" "Regina" "Mario" "Pedro" "Mauricio" [6] "Marcelo" "Patricia" "Cintia" "Abigail" "Renato" E tamb´em vetores com os meses.

> format(ISOdate(2000, 1:12, 1), "%B")

[1] "janeiro" "fevereiro" "mar¸co" "abril" [5] "maio" "junho" "julho" "agosto" [9] "setembro" "outubro" "novembro" "dezembro"

(5)

Juntando elementos de vetores

paste(a,b): junta os dados do vetor ’a’ com dados do vetor ’b’, caso a caso (com possibilidade de reciclagem). > nomes

[1] "Marta" "Regina" "Mario" "Pedro" "Mauricio" [6] "Marcelo" "Patricia" "Cintia" "Abigail" "Renato" > paste(nomes, 10:1)

[1] "Marta 10" "Regina 9" "Mario 8" "Pedro 7" [5] "Mauricio 6" "Marcelo 5" "Patricia 4" "Cintia 3" [9] "Abigail 2" "Renato 1"

> paste(letters[1:6], 1:9, sep = "")

[1] "a1" "b2" "c3" "d4" "e5" "f6" "a7" "b8" "c9" ## Observe a reciclagem

> rep(paste("T", 1:3, sep = ""), c(4, 4, 3))

[1] "T1" "T1" "T1" "T1" "T2" "T2" "T2" "T2" "T3" "T3" "T3" ## Note que no comando o vetor orientou a repeti¸c˜ao de cada n´umero.

M A T R I Z E S (bidimensionais) > args(matrix)

function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL) NULL

Queremos a matriz 4x3 a partir do vetor (1 2 3 4 5 6 7 8 9 10 11 12)

m1 =     1 2 3 4 5 6 7 8 9 10 11 12    

com entrada dos valores por linhas

> (m1 <- matrix(1:12, nc = 3, by = T)) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 [4,] 10 11 12

(6)

Queremos, agora, uma matriz m2 4x3 a partir do mesmo vetor (1 2 3 4 5 6 7 8 9 10 11 12),com entrada dos valores por colunas:

m2 =     1 5 9 2 6 10 3 7 11 4 8 12     > (m2 <- matrix(1:12, ncol = 3)) [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12

Nomeando linhas e colunas da matriz

> dimnames(m1) <- list(c("L1", "L2", "L3", "L4"), + c("C1", "C2", "C3")) > m1 C1 C2 C3 L1 1 2 3 L2 4 5 6 L3 7 8 9 L4 10 11 12 ... ou

> m1.a <- matrix(1:12, ncol = 3, byrow = F, dimnames = list(c("L1", + "L2", "L3", "L4"), c("C1", "C2", "C3"))) > m1.a C1 C2 C3 L1 1 5 9 L2 2 6 10 L3 3 7 11 L4 4 8 12 Inspecionando a matriz > m2 [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12 > length(m2) [1] 12

(7)

> dim(m2) [1] 4 3

## dimens˜ao da matriz (linhas x colunas)

> nrow(m2) [1] 4

## n´umero de linhas da matriz

> ncol(m2) [1] 3

## n´umero de colunas da matriz

> m2[1, 2] [1] 5

## elemento da primeira linha e segunda coluna

> m2[, 1] [1] 1 2 3 4

## todos elementos da primeira coluna

> m2[1, ] [1] 1 5 9

## todos elementos da primeira linha

> m2[c(1, 3), c(1, 3)] [,1] [,2]

[1,] 1 9

[2,] 3 11

(8)

> m2[1:2, 2:3] [,1] [,2]

[1,] 5 9

[2,] 6 10

## submatriz com linhas 1 e 2 e colunas 2 e 3 Gerando uma matriz identidade

> diag(3) [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1 > diag(5) [,1] [,2] [,3] [,4] [,5] [1,] 1 0 0 0 0 [2,] 0 1 0 0 0 [3,] 0 0 1 0 0 [4,] 0 0 0 1 0 [5,] 0 0 0 0 1

Opera¸c˜oes basicas com matrizes t() transposta

%*% produto interno det() determinante

solve() inversa de uma matriz ou resolver sistema de equa¸c˜oes lineares

> (m4 <- matrix(1:6, nc = 3)) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > (m5 <- matrix(10 * (1:6), nc = 3)) [,1] [,2] [,3] [1,] 10 30 50 [2,] 20 40 60 > m4 + m5 [,1] [,2] [,3] [1,] 11 33 55 [2,] 22 44 66 ## membro `a membro

(9)

> m5 - m4 [,1] [,2] [,3] [1,] 9 27 45 [2,] 18 36 54 ## membro `a membro > dim(t(m4)) [1] 3 2 > dim(m5) [1] 2 3 > (m6 <- t(m4) %*% m5) [,1] [,2] [,3] [1,] 50 110 170 [2,] 110 250 390 [3,] 170 390 610 > det(m6) [1] -4.054396e-12

## perceba que aqui h´a um erro de arredondamento. Para contornar isso basta utilizar o seguinte comando: > round(det(m6), digits = 1)

[1] 0

## Aqui obtemos o resultado esperado.

Sistema de equacoes lineares (Ax=b) x + 3y - z = 10 5x - 2y + z = 15 2x + y - z = 7 > mat <- matrix(c(1, 5, 2, 3, -2, 1, -1, 1, -1), + nc = 3) > mat [,1] [,2] [,3] [1,] 1 3 -1 [2,] 5 -2 1 [3,] 2 1 -1

(10)

> solve(mat) [,1] [,2] [,3] [1,] 0.07692308 0.15384615 0.07692308 [2,] 0.53846154 0.07692308 -0.46153846 [3,] 0.69230769 0.38461538 -1.30769231 ## inversa da matriz > vec <- c(10, 15, 7) > vec [1] 10 15 7 > solve(mat, vec) [1] 3.615385 3.307692 3.538462 ## Solu¸c˜ao do sistema Ax=b

Resolva os seguintes exerc´ıcios: 1) Dadas as matrizes: A =   2 −3 −5 −1 4 5 1 −3 −4   B =   −1 3 5 1 −3 −5 −1 3 5   C =   2 −2 −4 −1 3 4 1 −2 −3  

mostre que AB=BA = matriz nula , AC=A e CA=C

2) Um construtor tem contratos para construir 3 estilos de casa: moderno, mediterraneo e colonial. A quantidade de material empregada em cada tipo de casa ´e dada pela tabela:

Tabela 1: Estilos de casas

Estilo de casa Ferro Madeira Vidro Tinta Tijolo

Moderno 5 20 16 7 17

Mediterrˆaneo 7 18 12 9 21

Colonial 6 25 8 5 13

a) Se ele vai contruir 5, 7 e 12 casas dos tipos moderno, mediterraneo e colonial, respectivamente, quantas unidades de cada material ser˜ao empregadas?

b) Suponha agora que os pre¸cos por unidade de ferro, madeira, vidro, tinta e tijolo sejam, respectivamente, 15, 8, 5, 1 e 10 u.c.p. Qual ´e o pre¸co unit´ario de cada tipo de casa?

(11)

3) Suponha que um corretor da Bolsa de valores fa¸ca um pedido para comprar a¸c˜oes na segunda-feira, como segue:

400 quotas de a¸c˜ao A, 500 quotas da a¸c˜ao B e 600 quotas da a¸c˜ao C. As a¸c˜oes A, B e C custam por quota R$ 500,00, R$ 400,00 e R$ 250,00, respectivamente.

a) Encontre o custo total de acoes, usando multipicacao de matrizes.

b) Qual serah o ganho ou a perda quando as acoes forem vendidas seis meses mais tarde se as acoes A, B e C custam R$ 600,00, R$ 350,00 e R$ 300,00 por quota, respectivamente?

4) Encontre as solu¸c˜oes para o sistema de equa¸c˜oes. a) 3x + 5y = 2 2x + z = 3 5x + y - z = 0 b) 2x - y +3z = 11 4x - 3y +2z = 0 x + y + z = 6 3x + y + z = 4 c) 3x + 5y + 12z - t = -3 1x + 1y + 4z - t = -6 0x + 2y + 2z + t = 6

5) Calcule a determinante de:

A =   2 0 −1 3 0 2 4 −3 7   6) Dadas as matrizes A =  1 2 1 0  B =  3 −1 0 1  Calcule: a) det(A) + det(B) b) det(A + B)

7) Dada a matriz calcule

A =   2 1 −3 0 2 1 5 1 4   a) det(A) b) inversa de A

(12)

8) Considere C =   −1 0 1 −1 3 1 0 1 1   a) Determine a inversa de C

b) Uma maneira de decodificar mensagens ´e por meio de multiplica¸c˜ao de matrizes. Associamos as letras do alfabeto aos n´umeros, segundo a correspondencia abaixo

a b c d e f g h i j l m n o p q r s t u v x z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Se desejamos enviar a mensagem ”eles”, por exemplo, utilizamos a correspondˆencia num´erica, montamos a matriz

M = 

5 11 5 18



Fazemos CM, onde C ´e uma invers´ıvel, por exemplo,

C =  1 2 3 4  e enviamos CM =  15 47 35 105  .

Quem recebe a mensagem codificada, decodifica-a utilizando multiplicacao pela inversa de C(matriz chave). Voce recebe a mensagem codificada

CM =   16 35 2 12 52 51 14 36 18  

Referências

Documentos relacionados

Portanto, a menor medida do ângulo possível em que se deve girar a tela para retornar à posição original é de 135º no sentido horário.. QUESTÃO 46:

Fundamentos da prática de Enfermagem: bases teóricas do cuidado de enfermagem; sinais vitais; avaliação de saúde e exame físico; sistematização da Assistência de

3) As seções Produtos Minerais, Celulose e Papel e suas Obras e Produtos das Indústrias Químicas ou da Indústrias Conexas responderam por 51,7% das exportações baianas nos

Comércio Exterior: Bahia e Brasil (Sinopse) é uma publicação mensal da Federação das In- dústrias do Estado da Bahia (FIEB), produzida pela Superintendência de Desenvolvimento

BABÁ AKINBIY-Baba Egun ligado ao Orixá Ogun.---BABÁ ALAPALÁ- Baba Egun ligado aos Orixás Obaluayê,Xangô e Oyá.---BABÁ APÁRAKÁ- Babá Egun ligado aos Orixás Oxum e

Teor de sólidos solúveis em tubérculos de batata, cultivar Asterix, sob a aplicação de subletais etílico chlorimuron em dois momentos diferentes, a 37 e 60 dias após o

O software ´e testado para dom´ınios el´ıptico e circular e, conforme os resultados obtidos a partir de dados num´ericos, verifica-se que o software ´e capaz de obter em

Tabela 9: Resumo da análise de variância da taxa de degradação das motilidades subjetiva (Mot) e computadorizada (MT) e integridade total de membranas espermáticas (IMB), no