Baixe o app para aproveitar ainda mais
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()
Compartilhar