Last active
August 29, 2015 14:10
-
-
Save rlazo/909681e6e45fbf5f494a to your computer and use it in GitHub Desktop.
DD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
portfolio.wl <- function(tickers, yreturn, i) { | |
# cria um novo dataframe com duas colunas: ticker, que vai armazenar o ticker da ação; | |
# e wl, que armazena o retorno anual (yreturn) para o ano `i` de cada ticker | |
wls <- data.frame(wl = yreturn[tickers, i], ticker=tickers, stringsAsFactors=FALSE) | |
# cria uma copia do dataframe `wls` ordenado pela coluna `wl` do maior valor de retorno anual | |
# para o menor | |
sorted_wls <- arrange(wls, -wl) | |
# Verifica se algum dos dados em sorted_wl tem NA na coluna `wl`. Se for assim, mostra uma mensagem de erro | |
# com o ticker correspondente | |
if(any(is.na(sorted_wls$wl))) warning(paste("Ativo com NA:", sorted_wls$ticker[is.na(sorted_wls$wl)])) | |
# cria uma copia da coluna ticker do `sorted_wls`. A coluna já está ordenada pelo valor do retorno anual | |
sorted_tickers <- sorted_wls$ticker #linha 148 | |
# armazena o tamanho da lista de tickers | |
size <- length(sorted_tickers) #linha 149 | |
# calcula a posição do ticker central | |
pivot <- round(size / 2) #linha 150 | |
# cria uma copia dos tickers desde aquele com maior retorno anual até a mitade da coluna | |
winner <- sorted_tickers[1:pivot] | |
# cria uma copia dos ticker da mitade até o menor retorno anual | |
loser <- sorted_tickers[(pivot + 1):size] | |
# retorna uma lista com os dois grupos | |
return(list(winner=winner, loser=loser)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment