library(tidyquant)
Loading required package: lubridate

Attaching package: <U+393C><U+3E31>lubridate<U+393C><U+3E32>

The following object is masked from <U+393C><U+3E31>package:plyr<U+393C><U+3E32>:

    here

The following object is masked from <U+393C><U+3E31>package:base<U+393C><U+3E32>:

    date

Loading required package: PerformanceAnalytics
Loading required package: xts
Loading required package: zoo

Attaching package: <U+393C><U+3E31>zoo<U+393C><U+3E32>

The following objects are masked from <U+393C><U+3E31>package:base<U+393C><U+3E32>:

    as.Date, as.Date.numeric


Package PerformanceAnalytics (1.4.3541) loaded.
Copyright (c) 2004-2014 Peter Carl and Brian G. Peterson, GPL-2 | GPL-3
http://r-forge.r-project.org/projects/returnanalytics/


Attaching package: <U+393C><U+3E31>PerformanceAnalytics<U+393C><U+3E32>

The following object is masked from <U+393C><U+3E31>package:SDMTools<U+393C><U+3E32>:

    Kappa

The following object is masked from <U+393C><U+3E31>package:graphics<U+393C><U+3E32>:

    legend

Loading required package: quantmod
Loading required package: TTR
Version 0.4-0 included new data defaults. See ?getSymbols.
Learn from a quantmod author: https://www.datacamp.com/courses/importing-and-managing-financial-data-in-r
Loading required package: tidyverse
Loading tidyverse: tibble
Loading tidyverse: tidyr
Loading tidyverse: readr
Loading tidyverse: purrr
Loading tidyverse: dplyr
Conflicts with tidy packages ----------------------------------------
alpha():       ggplot2, kernlab
arrange():     dplyr, plyr
as.difftime(): lubridate, base
combine():     dplyr, randomForest
compact():     purrr, plyr
count():       dplyr, plyr
cross():       purrr, kernlab
date():        lubridate, base
extract():     tidyr, raster
failwith():    dplyr, plyr
filter():      dplyr, tibbletime, stats
first():       dplyr, xts
here():        lubridate, plyr
id():          dplyr, plyr
intersect():   lubridate, raster, base
lag():         dplyr, stats
last():        dplyr, xts
lift():        purrr, caret
margin():      ggplot2, randomForest
mutate():      dplyr, plyr
rename():      dplyr, plyr
select():      dplyr, raster
setdiff():     lubridate, base
summarise():   dplyr, plyr
summarize():   dplyr, plyr
union():       lubridate, raster, base

Attaching package: <U+393C><U+3E31>tidyquant<U+393C><U+3E32>

The following object is masked from <U+393C><U+3E31>package:dplyr<U+393C><U+3E32>:

    as_tibble

The following object is masked from <U+393C><U+3E31>package:tibble<U+393C><U+3E32>:

    as_tibble

Define a ggplot based function for plotting

FANG_tbl_d %>%
    ggplot_facet_by_symbol(date, adjusted) +
    labs(title = "FANG Stocks: Adjusted Prices 2014 through 2016")
Error in ggplot_facet_by_symbol(., date, adjusted) : 
  could not find function "ggplot_facet_by_symbol"

LS0tDQp0aXRsZTogIlRpbWUgU2VyaWVzIEFuYWx5c2lzIG9mIFRlY2ggU3RvY2tzICINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiANCg0KYGBge3J9DQoNCmxpYnJhcnkodGliYmxldGltZSkNCmxpYnJhcnkodGlkeXF1YW50KQ0KDQoNCmBgYA0KDQpgYGB7cn0NCiMgU3RvY2sgUHJpY2VzIGZyb20gWWFob28hIEZpbmFuY2UNCkZBTkdfc3ltYm9scyA9IGMoIkZCIiwgIkFNWk4iLCAiTkZMWCIsICJBQVBMIikNCg0KRkFOR190YmxfZCA9IEZBTkdfc3ltYm9scyAlPiUNCiAgICB0cV9nZXQoZ2V0ID0gInN0b2NrLnByaWNlcyIsIGZyb20gPSAiMjAxMy0wMS0wMSIsIHRvID0gIjIwMTYtMTItMzEiKSANCkZBTkdfdGJsX2QNCg0KYGBgDQoNCkRlZmluZSBhIGdncGxvdCBiYXNlZCBmdW5jdGlvbiBmb3IgcGxvdHRpbmcNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KDQojIFNldHVwIHBsb3R0aW5nIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHJldXNlZCBsYXRlcg0KZ2dwbG90X2ZhY2V0X2J5X3N5bWJvbCA8LSBmdW5jdGlvbihkYXRhLCB4LCB5LCBncm91cCA9IE5VTEwpIHsNCiAgICANCiAgICAjIFNldHVwIGV4cHJlc3Npb25zDQogICAgeF9leHByICAgICA8LSBybGFuZzo6ZW5xdW8oeCkNCiAgICB5X2V4cHIgICAgIDwtIHJsYW5nOjplbnF1byh5KQ0KICAgIGdyb3VwX2V4cHIgPC0gcmxhbmc6OmVucXVvKGdyb3VwKQ0KICAgIA0KICAgIGlmIChncm91cF9leHByID09IH5OVUxMKSB7IA0KICAgICAgICAjIE5vIGdyb3Vwcw0KICAgICAgICBnIDwtIGRhdGEgJT4lDQogICAgICAgICAgICBnZ3Bsb3QoYWVzKHggPSBybGFuZzo6ZXZhbF90aWR5KHJsYW5nOjpgISFgKHhfZXhwcikpLCANCiAgICAgICAgICAgICAgICAgICAgICAgeSA9IHJsYW5nOjpldmFsX3RpZHkocmxhbmc6OmAhIWAoeV9leHByKSksIA0KICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IHN5bWJvbCkpICsNCiAgICAgICAgICAgIGxhYnMoeCA9IHF1b19uYW1lKHhfZXhwciksDQogICAgICAgICAgICAgICAgIHkgPSBxdW9fbmFtZSh5X2V4cHIpKQ0KICAgIH0gZWxzZSB7DQogICAgICAgICMgRGVhbCB3aXRoIGdyb3Vwcw0KICAgICAgICBnIDwtIGRhdGEgJT4lDQogICAgICAgICAgICBnZ3Bsb3QoYWVzKHggPSBybGFuZzo6ZXZhbF90aWR5KHJsYW5nOjpgISFgKHhfZXhwcikpLCANCiAgICAgICAgICAgICAgICAgICAgICAgeSA9IHJsYW5nOjpldmFsX3RpZHkocmxhbmc6OmAhIWAoeV9leHByKSksIA0KICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IHN5bWJvbCwNCiAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBybGFuZzo6ZXZhbF90aWR5KHJsYW5nOjpgISFgKGdyb3VwX2V4cHIpKSANCiAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICkgICsNCiAgICAgICAgICAgIGxhYnMoeCA9IHF1b19uYW1lKHhfZXhwciksDQogICAgICAgICAgICAgICAgIHkgPSBxdW9fbmFtZSh5X2V4cHIpLA0KICAgICAgICAgICAgICAgICBncm91cCA9IHF1b19uYW1lKGdyb3VwX2V4cHIpKQ0KICAgIH0NCiAgICANCiAgICAjIEFkZCBmYWNldGluZyBhbmQgdGhlbWUNCiAgICBnIDwtIGcgKw0KICAgICAgICBnZW9tX2xpbmUoKSArDQogICAgICAgIGZhY2V0X3dyYXAofiBzeW1ib2wsIG5jb2wgPSAyLCBzY2FsZXMgPSAiZnJlZV95IikgKw0KICAgICAgICBzY2FsZV9jb2xvcl90cSgpICsNCiAgICAgICAgdGhlbWVfdHEoKQ0KICAgIA0KICAgIHJldHVybihnKQ0KfQ0KYGBgDQoNCg0KYGBge3J9DQpGQU5HX3RibF9kICU+JQ0KICAgIGdncGxvdF9mYWNldF9ieV9zeW1ib2woZGF0ZSwgYWRqdXN0ZWQpICsNCiAgICBsYWJzKHRpdGxlID0gIkZBTkcgU3RvY2tzOiBBZGp1c3RlZCBQcmljZXMgMjAxMyB0aHJvdWdoIDIwMTYiKQ0KYGBgDQoNCmBgYHtyfQ0KDQojIENvbnZlcnQgdG8gdGJsX3RpbWUNCkZBTkdfdGJsX3RpbWVfZCA8LSBGQU5HX3RibF9kICU+JQ0KICAgIGFzX3RibF90aW1lKGluZGV4ID0gZGF0ZSkgDQoNCg0KIyBQbG90IHRoZSB0YmxfdGltZSBvYmplY3QNCkZBTkdfdGJsX3RpbWVfZCAlPiUNCiAgICBnZ3Bsb3RfZmFjZXRfYnlfc3ltYm9sKGRhdGUsIGFkanVzdGVkKSArDQogICAgbGFicyh0aXRsZSA9ICJXb3JraW5nIHdpdGggdGJsdGltZTogUmVhY3RzIHNhbWUgYXMgdGJsIGNsYXNzIikNCmBgYA0KDQo=