Aula 1_11: Importação e tratamento básico de dados: Parte 1 (15 minutos)Código em cor avermelhada: Script
Código em cor azulada: Consola
Esta aula é bastante importante e introduz uma quantidade considerável de novos comandos, assim como a importação de novas bibliotecas (add-ons do R).
Vamos aqui importar cotações do SPY e fazer o mínimo de tratamento dos mesmos para que fiquem com o formato com que pretendemos trabalhar.
Passo 1:Ir ao Yahoo finance buscar as cotações de SPY (2013//2014//2015)Deixo aqui um PrintScreen que penso ser elucidativo sobre como fazer o download dos dados em .csv. O Ficheiro .csv deverá ficar na pasta criada para estas aulas e onde vai ficar o Script do R que vão usar.
Passo 2:Importar os dados para o RApós abrirem o RStudio e criarem um novo Script em branco vamos dar comandos para a importação do ficheiro .CSV
Primeiro comando a escrever é o setwd(), que como disse numa aula anterior informa o R sobre qual é o directório em que estamos a trabalhar. Neste directório deveremos ter o ficheiro CSV com as cotações do SPY e de preferência o próprio script que estamos a fazer.
Assim:
1. setwd("C:/Users/a/Dropbox/_Programacao/R/Caldeirao/R_para_Finanças")No vosso caso deverão alterar o código para o directório que vocês estão a usar. Lembrem-se de usar / pois o \ está reservado para outras coisas em R e o programa entra em confito.
Se quiserem confirmar se tudo correu bem podem testar escrevendo
getwd() na consola.
2.Para ler o CSV o comando é um relativamente simples read.csv()
SPY <- read.csv("SPY.csv", header = TRUE)Neste caso temos 3 coisas a saber. Primeiro que chamei SPY.csv ao ficheiro com as cotações do SPY que saquei do yahoo Finance. Em segundo lugar, vou chamar SPY ao objecto R com as cotações do SPY. Por último o header = TRUE significa que a primeira linha das cotações é o cabeçalho e não deve ser considerado como cotações mas sim como nomes das colunas.
Se não deu erro nenhum na leitura podem querer confirmar que as cotações foram bem importadas. Para isso podem usar o comando head() e tail().
Escrevendo head(SPY) na consola deveremos ver o topo das cotações:
> head(SPY) Date Open High Low Close Volume Adj.Close
1 2015-12-31 205.13 205.89 203.87 203.87 102929500 200.7605
2 2015-12-30 207.11 207.21 205.76 205.93 63317700 202.7890
3 2015-12-29 206.51 207.79 206.47 207.40 92640700 204.2366
4 2015-12-28 204.86 205.26 203.94 205.21 65899900 202.0800
5 2015-12-24 205.72 206.33 205.42 205.68 48539600 202.5429
6 2015-12-23 204.69 206.07 204.58 206.02 110987200 202.8777
Se a seguir fizermos tail (SPY) veremos o fim das cotações:
> tail(SPY) Date Open High Low Close Volume Adj.Close
752 2013-01-08 145.71 145.91 144.98 145.55 121265100 135.0143
753 2013-01-07 145.85 146.11 145.43 145.97 110002500 135.4039
754 2013-01-04 145.97 146.61 145.67 146.37 116817700 135.7749
755 2013-01-03 145.99 146.37 145.34 145.73 144761800 135.1812
756 2013-01-02 145.11 146.15 144.73 146.06 192059000 135.4873
757 2012-12-31 139.66 142.56 139.54 142.41 243935200 132.1016
Pessoalmente prefiro fazer 'batota' e escrever uma linha de código que me mostra as primeira 3 cotações e também a última.
> print(SPY[c(1:3,nrow(SPY)),]) Date Open High Low Close Volume Adj.Close
1 2015-12-31 205.13 205.89 203.87 203.87 102929500 200.7605
2 2015-12-30 207.11 207.21 205.76 205.93 63317700 202.7890
3 2015-12-29 206.51 207.79 206.47 207.40 92640700 204.2366
757 2012-12-31 139.66 142.56 139.54 142.41 243935200 132.1016
Passo 3:Tratamento dos dadosAssumindo que eu apenas pretendo fazer uma série temporal e que as colunas Open High Low Close Volume, não me interessam e pretendo apaga-las.
Para isso vamos usar uma biblioteca que nos simplifica bastante a tarefa. Trata-se do dplyr. Vamos ter de primeiro instalar essa biblioteca no R com o seguinte comando
na consola.
> install.packages("dplyr")Installing package into ‘C:/Users/a/Documents/R/win-library/3.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/dplyr_0.5.0.zip'
Content type 'application/zip' length 2407553 bytes (2.3 MB)
downloaded 2.3 MB
package ‘dplyr’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\a\AppData\Local\Temp\RtmpWCjn8U\downloaded_packages
Pode, como é óbvio mudar alguns directórios etc, mas deverá SEMPRE aparecer:
package ‘dplyr’ successfully unpacked and MD5 sums checkedNunca mais vamos ter de instalar o dplyr mas vamos sempre ter de o importar sempre que o quisermos usar, usando o comando library(). Pelo que recomendo que no Script coloquem logo library(dplyr) no topo.
Com esta biblioteca o tratamentos dos dados torna-se super simples e apenas temos de informar ao R qual as colunas com que pretendemos ficar:
SPY <- select(SPY, Date, Close, Adj.Close)Se quisermos confirmar que está tudo como pretendemos podemos usar o comando para visualização das cotações:
> print(SPY[c(1:3,nrow(SPY)),]) Date Close Adj.Close
1 2015-12-31 203.87 200.7605
2 2015-12-30 205.93 202.7890
3 2015-12-29 207.40 204.2366
757 2012-12-31 142.41 132.1016
Depois de deliberarmos de devemos usar o Close ou o Adj.Close decidimos usar o fecho ajustado pois inclui as mais valias dos dividendos e por isso representa mais correctamente os ganhos de um investidor em SPY. Vamos então apagar o coluna Close com o comando anterior ligeiramente modificado:
SPY <- select(SPY, -Close)desta vez em vez de seleccionarmos as colunas com que queremos ficar, excluímos aquela que não queremos.
De novo podemos testar para ver se está tudo como esperado:
> print(SPY[c(1:3,nrow(SPY)),]) Date Adj.Close
1 2015-12-31 200.7605
2 2015-12-30 202.7890
3 2015-12-29 204.2366
757 2012-12-31 132.1016
Acabamos assim a primeira parte, ficando (aparentemente) com os dados como pretendemos. Vou no final da segunda parte anexar o meu ficheiro .R (com o código) que recomendo que tenham aberto ao mesmo tempo que lêem o texto pois penso que visualizando o código simplifica em muito a compreensão do que estou a dizer.