Отримати курс валют за відповідний період за допомогою api Національного банку:

# можна попробувати "USD", "EUR", "RUB"
get_money_price <- function(date_start, date_end, money_name = "USD") {
  library(lubridate)
  library(jsonlite)
  library(dplyr)
  
  # послідовність дат
  period_value <- seq(lubridate::ymd(date_start), lubridate::ymd(date_end), "1 day")
  
  # послідовність дат в текстовому форматі РРРРММДД
  period_value_str <- paste0(
    lubridate::year(period_value),
    ifelse(lubridate::month(period_value) %in% 1:9, 0, ""), 
    lubridate::month(period_value),
    ifelse(lubridate::day(period_value) %in% 1:9, 0, ""), 
    lubridate::day(period_value)
  ) 
  
  # послідовність посилань на кожну дату
  api_value_str <- paste0(
    "https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=",
    money_name, 
    "&date=",
    period_value_str,
    "&json"
  ) 
  
  # запускаємо посилання
  api_value_df <- purrr::map_df(
    .x = api_value_str,
    .f = ~jsonlite::fromJSON(txt = .x)
  ) %>% 
    dplyr::as_data_frame()
  
  return(api_value_df)
}

Запускаємо функцію:

ss <- get_money_price(
  date_start = "2017-06-01", 
  date_end   = "2017-10-01", 
  money_name = "USD"
)

ss
## # A tibble: 123 x 5
##     r030       txt     rate    cc exchangedate
##    <int>     <chr>    <dbl> <chr>        <chr>
##  1   840 Долар США 26.31033   USD   01.06.2017
##  2   840 Долар США 26.27095   USD   02.06.2017
##  3   840 Долар США 26.27095   USD   03.06.2017
##  4   840 Долар США 26.27095   USD   04.06.2017
##  5   840 Долар США 26.27095   USD   05.06.2017
##  6   840 Долар США 26.28094   USD   06.06.2017
##  7   840 Долар США 26.24658   USD   07.06.2017
##  8   840 Долар США 26.20541   USD   08.06.2017
##  9   840 Долар США 26.14921   USD   09.06.2017
## 10   840 Долар США 26.14921   USD   10.06.2017
## # ... with 113 more rows
ss %>% 
  dplyr::mutate(exchangedate = lubridate::dmy(exchangedate)) %>% 
  plotly::plot_ly() %>% 
  plotly::add_lines(x = ~exchangedate, y = ~rate)