Buscar

cola em R

Prévia do material em texto

AULA 5
install.packages('tidyverse')
install.packages('readxl')
install.packages('lubridate')
library(tidyverse)
library(readxl)
library(lubridate)
setwd('D:/Arquivos diversos/Artigos interessantes/Aulas MBA/2020/Exercicios')
dados = read.table(file = "ex_casa.txt", skip = 4, sep=';', dec=',', na.strings = '-', stringsAsFactors = FALSE)
## Tratando dados
dados = dados %>%
 mutate(ticker = ifelse(test = V1=='', yes = V2, no = NA)) %>%
 fill(ticker) %>%
 filter(V1!='Data' & V1!='') %>%
 mutate(V2 = sub(pattern=',', replacement='.', x=V2), V3 = sub(pattern=',', replacement='.', x=V3)) %>%
 mutate(data = as.Date(V1, format='%d/%m/%Y'), preco = as.numeric(V2), volume = as.numeric(V3)) %>%
 select(data, ticker, preco, volume)
## Calculando o custo de liquidez
base_final = dados %>%
 filter(!is.na(preco)) %>%
 mutate(retorno_abs = abs(preco/lag(preco)-1)) %>%
 filter(!is.na(retorno_abs)) %>%
 mutate(custo_diario = 1000000*retorno_abs/volume) %>%
 mutate(ano=year(data), mes=month(data), dia=day(data)) %>%
 group_by(ano, mes) %>%
 summarise(media=mean(custo_diario)) %>%
 ungroup()
## Agora calculamos a media
media = summarise(base_final, media = mean(media))
	AULA 4
## Projeto: calcular a razao de sharpe para uma acao
install.packages('tidyverse')
install.packages('readxl')
install.packages('lubridate')
library(tidyverse)
library(readxl)
library(lubridate)
setwd('C:/Users/AutoLogon/Desktop/Programacao em R')
dados = read.table(file = 'aula5.txt', sep = ';', dec = ',', na.strings = '-', skip=4, stringsAsFactors = FALSE)
## Tratando dados
dados = mutate(dados, ticker = ifelse(test = V1=='', yes = V2, no=NA))
dados = fill(dados, ticker)
dados = filter(dados, V1 != 'Data' & V1 != "")
dados = mutate(dados, V2 = sub(pattern = ',', replacement = '.', x = V2))
dados = mutate(dados, preco = as.numeric(V2))
summary(dados)
dados = mutate(dados, data = as.Date(V1, format = '%d/%m/%Y'))
dados = select(dados, data, ticker, preco)
dados = filter(dados, !is.na(preco))
dados = arrange(dados, data)
dados = mutate(dados, retornos = preco/lag(preco) - 1)
rf = read_excel(path = 'Risk_Free.xls', col_names = TRUE)
summary(rf)
dados = mutate(dados, year=year(data), 
 month=month(data), 
 day=day(data))
base_final = merge(x = dados, y=rf, by = c('year', 'month', 'day'))
base_final = arrange(base_final, year, month, day)
base_final = mutate(base_final, excesso = retornos - Risk_free)
base_final = filter(base_final, !is.na(excesso))
sharpe = summarise(base_final, media = mean(excesso, na.rm=TRUE), 
 desvio = sd(excesso, na.rm=TRUE), 
 razao = (252^0.5)*media/desvio)
	AULA 3
install.packages('lubridate')
library(readxl)
library(lubridate)
library(tidyverse)
setwd('C:/Users/AutoLogon/Desktop/Programacao em R')
dados = read_excel(path='Aula 3 - Ex.xlsx', col_names = TRUE, na = '-')
summary(dados)
year(dados$Data)
dados = dados %>%
 filter(year(Data) == 2018) %>%
 group_by(Ticker) %>%
 arrange(Ticker, Data) %>%
 fill(Preco) %>%
 mutate(retornos = 100*(Preco/lag(Preco) - 1),
 retornos = round(retornos, digits = 2)) %>%
 ungroup()
sumario = dados %>%
 group_by(Ticker) %>%
 summarize(media = mean(retornos, na.rm=TRUE),
 desvio = sd(retornos, na.rm=TRUE))
sumario$media/sumario$desvio
		
	dados<-read.table("meus_dados.csv",h=T)
	
##Adicionar uma nova coluna chamada “area” no data.frame “dados” e preenche-la com o nome das áreas onde os dados foram coletados.
dados["area"]<-c("mata A","mata B","mata B","mata A","mata B","mata B")
## Adicionando uma nova coluna que seja o resultado de uma equação entre duas colunas já existentes
dados["amTemp"]<-dados$amostra + dados$temperatura
##A função matrix cria uma matriz com os valores do argumento data. matrix(data=1:12,nrow=3,ncol=4)
##Com a função data.frame reunimos vetores de mesmo comprimento em um só objeto:
> nome <- c("Didi","Dedé","Mussum","Zacarias")
> ano.nasc <- c(1936,1936,1941,1934)
> vive <- c("V","V","F","F")
> trapalhoes <- data.frame(nomes,ano.nasc,vive)
##exportando dados
nomes <- c("Scooby", "Salsicha", "Fred", "Velma", "Daphne")
idades <- c(10, 18, 20, 21, 19)
tabela <- data.frame(nome = nomes, idade = idades)
write.csv(tabela, "ScoobyDoo.csv", row.names = FALSE)
##trocando o nome de uma coluna
novo<-data.frame(pontuacao=atual$Pontos,total_atend=atual$Total.pontos.atend,parametro= atual$indicador)
##exportando dados
setwd('C:/Users/Rapha_PC/Desktop/Nova Pasta')
nomes <- c("Scooby", "Salsicha", "Fred", "Velma", "Daphne")
idades <- c(10, 18, 20, 21, 19)
tabela <- data.frame(nome = nomes, idade = idades)
write.csv(tabela, "ScoobyDoo.csv", row.names = FALSE)
write.xlsx(dados_petr3, file="MyExcel.xlsx", sheetName="PETR3", row.names=FALSE,
 showNA=FALSE, append=FALSE)
##Filtrando dados
tabela %>%
filter(idade > 10)
##Operadores
==: Igual a
!=: Não igual a
>: Maior que
>=: Igual ou maior/ não menor que
<: Menor que
<=: Igual ou menor/ não maior que
&: Operador E
|: Operador OU
!: Negação
xor(): OU exclusivo. Quando somente uma condição pode ser verdadeira
is.na(): Testa se o conteúdo é NA
any(): Testa se algum dos valores é verdadeiro
all(): Testa se todos os valores são verdadees
between(): Testa se um valor está dentro de um intervalo de valor
near(): Comparar valores numéricos com uma tolerância de precisão
##baixando dados 
install.packages('quantmod')
install.packages('fBasics')
library(quantmod) # Pacote que nos permite baixar dados do Yahoo! Finance
library(fBasics) # Pacote de análise financeira
getSymbols(Symbols = 'PETR4.SA', from='2010-01-01', to='2019-12-06')
chartSeries(PETR4.SA, theme='white')
## Calculando log-retornos
PETR4_ret = diff(log(PETR4.SA$PETR4.SA.Adjusted))
chartSeries(PETR4_ret, theme='white')
basicStats(exp(PETR4_ret))
rm(list=ls())
graphics.off()

Continue navegando