1 introdução à programação linguagem r. 2 3 introdução o que escrevermos na linha de comando,...

37
1 Introdução à Programação Linguagem R

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

1

Introdução à Programação Linguagem R

Page 2: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

2

Page 3: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

3

Introdução

• O que escrevermos na linha de comando, depois de fazermos “Enter” – assumiremos a partir de agora, que se faz

sempre Enter no fim de escrever os comandos

• Vai ser processado pelo R.

Page 4: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

4

Introdução

• Por exemplo, se escrever

(2+7+5)/5

• aparece o resultado

[1] 2.8

• O número [1] não tem, para já, significado.

Page 5: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

5

Objectos

Page 6: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

6

Objectos

• Um objecto podem ser – Constantes,

– Vectores,

– etc.

Page 7: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

7

Objectos

• Cada objecto tem um nome formado por letras, por números e pelo carácter ponto, “.”

• Não pode ter espaços.

• As letras maiúsculas são diferentes da minúsculas

Page 8: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

8

Objectos

• Constantes. Eu posso criar a constante X executando

X <- 45 (que é diferente de x minúsculo).

• Para ver o conteúdo de um objecto, executo o seu nome. Se executar

X

• aparece

[1] 45

Page 9: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

9

Objectos

• Se atribuir outra vez outro valor a X, o valor anterior será destruído e substituído.

• Também poderia fazer a atribuição usando = em vez de <-

X = 45

Page 10: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

10

Objectos

• Expressões. Posso executar expressões algébricas e ver o resultado ou colocar o resultado numa constante.

• São parecidas com as formulas do Excel

• Números; +, –, /, *, ^

• Mas tem “nomes” em vez de referências

Page 11: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

11

Objectos

• Se executar

i <- ((X*2 + 5^2)^2) / log(1.05)

• e depois

i

• aparece

[1] 271058.7

Page 12: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

12

Exercício

• Ex.3.1. Emprestei 1000€ a uma taxa anual de 5%/ano. Quanto dinheiro receberei ao fim de 10 anos (capitalização composta)?

Page 13: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

13

Exercício

Tx.de.jr.an<-0.05

Cap.inic<-1000

Prazo<-10

Cap.final<-Cap.inic*(1+Tx.de.jr.an)^Prazo

Cap.final

[1] 1628.895

Page 14: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

14

Objectos

• Vectores. Um vector é uma “constante” multi-dimensional.

• Para dar a indicação de que vou criar um vector, usa o “comando” c(valor1, valor2).

• Os vectores têm um “modo” (se são números reais, complexos, valores lógicos, palavras, etc.) onde todas as dimensões do vector têm que ser do mesmo “modo”.

Page 15: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

15

Objectos

• E.g., durante um empréstimo a 3 anos capitalizado, a taxa de juro dos anos foi 3.7%, 4.1% e 4.9%. Posso guardar essas taxas num vector executando

Juros<-c(0.037,0.041,0.049)

• Se quiser saber quantos elementos tem o vector executo

length(Juros)

Page 16: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

16

Objectos

• Resumindo sabemos como definir

• Constantes

X = 45

• Expressões

i <- ((X*2 + 5^2)^2) / log(1.05)

• Vectores

Juros <- c(0.037,0.041,0.049)

Page 17: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

17

Operações com vectores

• Eu posso usar os vectores na expressões algébricas

• O R vai calcular a expressão para cada um dos elementos e retorna como resultado outro vector.

• Não se trata de cálculo vectorial normal

Page 18: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

18

Operações com vectores

• Por exemplo, as taxas de juro são

Juros<-c(0.037,0.041,0.049)

• E eu emprestei 5000€, recebendo os juros no fim de cada ano. Obtenho os juros recebidos nos 3 anos executando o comando … de que resulta

5000*Juros

[1] 185 205 245

Page 19: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

19

Operações com vectores

• Nota. Uma constante é um vector de dimensão unitária.

Page 20: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

20

Operações com vectores

• Se eu executar operações com dois vectores, as operações vão ser realizada entre os elementos de igual índice.

• Por exemplo, se eu executar … resultará

v1 <- c(4, 6, 87)

v2 <- c(34, 32.4, 12)

v1 + v2

[1] 38.0 38.4 99.0

Page 21: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

21

Operações com vectores

• Se eu aplicar funções a vectores, a função é aplicada a cada elemento do vector.

• Por exemplo, se eu executar… resultará

v1 <- c(4, 6, 87)

v1^0.5

[1] 2.000000 2.449490 9.327379.

Page 22: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

22

Exercício

• Ex.3.2. Um banco personaliza as taxas de juro dos depósitos dos seus clientes.

• i) Crie, para 10 clientes, um hipotético vector de taxas de juro, um vector de saldos e calcule os juros a pagar a cada cliente.

• ii) Capitalize esses saldos com a taxa de juro respectiva a 5 anos.

Page 23: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

23

Exercício

Tx.juros<- c(4.5, 5.1, 4, 3.6, 3, 5, 4.6, 4.8, 3.6, 5)/100

Saldos<- c(10, 150, 45, 20, 100, 75, 15, 67, 9, 2)*1000

Juros <- Saldos*Tx.juros

• ii) Cap.final<- Saldos*(1 + Tx.juros)^5

Page 24: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

24

Operações com vectores

• Reciclagem. Se realizar operações com dois vectores de tamanhos diferentes, o vector mais pequeno vai ser “reciclado” até ficar com o tamanho do maior.

Page 25: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

25

Operações com vectores

• Por exemplo, se executar … resultará

v3 <- c(1, 2, 3, 4)

v4 <- c(10, 2)

v3 + v4

[1] 12 4 13 6

• É como se o vector v4 fosse

v4 <-(10, 2, 10, 2)

Page 26: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

26

Operações com vectores

• Se, numa operação com vectores, usar uma constante, esta vai ser reciclada até ficar com o tamanho do vector.

• Capital.final<- Saldos*(1 + Tx.juros)^5

• Nota. Se os tamanhos não forem múltiplos um do outro, o R imprime um aviso.

Page 27: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

27

Exercício

• Ex.3.3. Quero saber, em função do prazo, qual é o capital final de emprestar 1000€ a uma taxa anual de 4%.

• Experimente 1, 2, 5 e 10 anos.

Page 28: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

28

Exercício

• R. Vou usar as potencialidades do R relativamente a “operações” com vectores.

Anos <- c(1, 2, 5, 10)

Tx.juro.anual<-0.04

Capital.final <- 1000*(1+Tx.juro.anual)^Anos

Capital.final

[1] 1040.000 1081.600 1216.653 1480.244

Page 29: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

29

Operações com vectores

• Sequências. Quando os elementos do vector são uma série, podemos usar o operador “:” para criá-lo.

• Por exemplo, se executar … resulta

v5 <- 1:10

V5

[1] 1 2 3 4 5 6 7 8 9 10

Page 30: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

30

Operações com vectores

• Devemos ter cuidado com a precedência do operador “:” pelo que se aconselha a usar parênteses:

• -(1:10) é diferente de -1:10

• Por exemplo, um vector de dimensão 10 com 5 em todos os elementos, posso fazer

v <- (1:5)*0 + 5

Page 31: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

31

Exercício

• Ex.3.4. Como criar num vector a sequência (10, 10.5, 11, 11.5, 12)?

v <- 10 + (0:4)/2

Page 32: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

32

Exercício

• Calculo de um VAL

• Ex.3.5. Num investimento, apliquei 1000€ e recebi 250€, 350€, 450€ a intervalos de um ano. Sendo que a taxa de desconto é de 4.5% ao ano, qual o VAL deste investimento?

Page 33: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

33

Exercício

Cash.flow<-c(-1000, 250, 350, 450)Taxa.de.desconto<-0.045Desconto<-(1+Taxa.de.desconto)^-(0:3)Vai<-Cash.flow*DescontoVai[1] -1000.0000 239.2344 320.5055 394.3335Va<-sum(Vai)Va[1] -45.9266

Page 34: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

34

Método de Monte Carlo

Sequências de números aleatórios. O R (contrariamente ao Excel) tem geradores de números aleatórios de muitas funções de distribuição.

Page 35: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

35

Método de Monte Carlo

Para criar um vector com 1000 números aleatórios que seguem Distribuição Normal com, por exemplo, média 10 e desvio padrão 5, executo

va<-rnorm(10000, mean=10, sd=5)

Depois, posso usar este vector nas minhas simulações

Page 36: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

36

Método de Monte Carlo

Por exemplo, a taxa de juro futura assume-se ser N(0.03;0.015). Pretende-se saber qual a prestação antecipada de amortizar 250mil€ em 50 anos.

)1/())600()^1(1/(. iiiVP

Page 37: 1 Introdução à Programação Linguagem R. 2 3 Introdução O que escrevermos na linha de comando, depois de fazermos Enter –assumiremos a partir de agora,

37

Método de Monte Carlo

r<-rnorm(10000, mean=0.03, sd=0.015)

rm<-(1+r)^(1/12)-1

P<-25000*rm/(1-(1+rm)^(-600))/(1+rm)

c(mean(P),sd(P))

[1] 80.81870 21.28977

summary(P)

Min. 1st Qu. Median Mean 3rd Qu. Max.

18.69 65.63 79.86 80.82 94.65 164.80