22 de octubre de 2017

Plot_ly Package

Plotly is a platform to share and edit plots in a modular way trough the web. It's on different programming language as javascript, python, R, and other APIs, all of this trough libraries adapted to the programming langanguage. More info here.

Instruction of the project

Create a web page presentation using R Markdown that features a plot created with Plotly. Host your webpage on either GitHub Pages, RPubs, or NeoCities. Your webpage must contain the date that you created the document, and it must contain a plot created with Plotly. We would love to see you show off your creativity!

Context

For Colombia, the impresive changes in the oil price over the last years, has impacted strongly over the Representative Exchange Rate of US Dollar and Colombian Peso, at a point that has impacted negatively in the economy, because importing the goods that Colombia is used to import, has increase the price, and so on, the adquisition power for a colombian has decreased, leading to a desacceleration of the economy. In this order, we would like to explore the time serie of the oil price and the GSRER and look at the effect of the changing price of the oil.

Development of the project

Loading the databases

trm <- read.csv("trm_diaria.csv", 
                col.names = c("Year", "Date", "TRM", "day", "Month", "MonthId"))
crudo <- read.csv("crudo.csv",
                  col.names = c("Date", "Last", "Open", "Max", "Min", "Vol", "Var"),
                  colClasses = c(rep("character", 7)))

Data Preprocessing

trm$Date <- as.Date(trm$Date)
trm$TRM <- as.character(trm$TRM)
trm$TRM <- as.numeric(gsub(",",".", trm$TRM))

Also we will create a function to some text processing

# Function to change the "," for a "."
commatoperiod <- function(x, n_col){
      if(!is.numeric(n_col)){
            stop("n_col must be numeric")
      }
      for(i in n_col:length(x)){
            x[,i] <- gsub(",", ".", x[,i])
      }
      return(x)
}

Turning some variables into numeric type variables

crudo <- commatoperiod(crudo, 2)
crudo$Vol <- as.numeric(gsub("K", "", crudo$Vol))*1000
for(i in 2:length(crudo)){
      crudo[,i] <- as.numeric(crudo[,i])
}

Changing date type variable

crudo$Date <- gsub("\\.","-",crudo$Date)
crudo$Date <- as.Date(crudo$Date, "%d-%m-%Y")

Plot_ly graph code

BD <- merge(crudo, trm, by = "Date")

param <- list(
      tickfont = list(color = "black"),
      overlaying = "y",
      side = "right",
      title = "COP/USD"
)

p <- plot_ly(data = BD) %>%
      add_lines(x = ~Date, y = ~Open, name = "Oil price") %>%
      add_lines(x = ~Date, y = ~TRM, name = "GSRER COP/USD", yaxis = "y2")%>%
      layout(
            title = "Oil vs GSRER COP/USD", yaxis2 = param,
            xaxis = list(title="Date")
            )

Plot_ly graph