R/make_events.R

#' Make Events
#'
#' This function lets us neatly create event dates with names and descriptions.
#' Returns a data frame of three columns containg event names, event dates, and event descriptions.
#' @param events should be a vector containing (Event name, event date, event description) repeating. All inputs need to be character strings. Date format Y-m-d "2014-05-15".
#' @keywords Keywords
#' @export
#' @examples
#' MakeEvents(events = c(
#' "Event one", "2014-07-30", "This is the first event",
#' "Event two", "2014-10-07", "This is the second event",
#' "Event three", "2014-12-08", "This is the third event"
#' ))

# This function lets us neatly create event dates with names and descriptions.
# Input:
# events should be a vector containing (Event name, event date, event description) repeating. All inputs need to be character strings. Date format Y-m-d "2014-05-15".
# Output:
# Returns a data frame of three columns containg event names, event dates, and event descriptions

MakeEvents <- function(events){
  # Create empty containers for sorting through the input
  event.names <- c()
  event.dates <- c()
  event.descriptions <- c()

  # Split input into containers
  for(i in 1:(length(events)/3)){
    i <- i*3 - 2
    event.names <- c(event.names, events[i])
    event.dates <- c(event.dates, events[i+1])
    event.descriptions <- c(event.descriptions, events[i+2])
  }

  # Collect containers into single data frame, fix date format, and rename columns
  event.df <- as.data.frame(cbind(event.names, event.dates, event.descriptions))
  event.df$event.dates <- as.Date(event.df$event.date)
  names(event.df) <- c("Name", "Date", "Description")
  event.df <- event.df[order(event.df$Date),]

  result <- event.df

  return(result)
}
wbach12/p9eventstudy documentation built on May 4, 2019, 7:43 p.m.