library(tidyverse)
library(pageviews) # This package gets data on Wikipedia viewing
library(DT) # DT stands for datatable, and creates interactive tables
Using R, and a package that contains data from Wikipedia (pageviews, which I loaded above), we can view a number of interesting trends. For example, we can find out which was the most popular Wikipedia article on any given date. Of course, it could be expected that in the days following a major event, related articles would be viewed more often. In this case, I am interested in finding out what the top Wikipedia articles were (by views) in the days before and after mass shooting events in the United States. This can give us insight into the zeitgeist in those particular days, at least in terms of what people tend to search for to read about on Wikipedia, one of the most popular websites in the world.
- First, I would like to see a graph showing trends in views of Wikipedia’s Gun Control article over a period of years. So I am going to tell R to search for the number of page views for that article from July 1, 2015 up through July 1, 2018. Then I will tell R to show this data on a graph. As we can see, there are a number of conspicuous spikes in the popularity of that article at seemingly random places in time. This would reasonably be explained by mass shootings that occured at about the same time.
guncontrol <- article_pageviews(article = "Gun control", start = as.Date("2015-7-1"), end = as.Date("2018-7-1"))
guncontrol %>%
ggplot(aes(x = date, y = views)) +
geom_line()

- Now I would like to know, on which days in particular during that several year span was the Gun control article viewed the most times? It is useful to have this data displayed in tabular form, which R gives us by default in this case.
guncontrol %>%
arrange(-views)
- Now I would like to look at the two particular mass shooting events I am looking at data about for this assignment. I will mention each in turn. My goal is to find out what the top articles were in the following day for each of these events respectively. The question is: were people searching Wikipedia for information about (or related to) these events the day after they had occurred?
First we will look at the Stoneman Douglas High School shooting, also known as the “Florida Shooting”, occurred on February 14, 2018. It would seem reasonable to assume that the top Wikipedia searches from the following day might include some articles that would refer to content related to mass shootings.
top <- top_articles(start = as.Date("2018-2-15"))
top %>%
select(article, views) %>%
filter(!article == "Main_Page", !article == "Special:Search") %>%
datatable(class = 'cell-border stripe') %>%
formatStyle("article", backgroundColor = "lightgoldenrodyellow") %>%
formatStyle("views", backgroundColor = "limegreen")
NA
As our results show in the table above, the day after the Florida Shooting, articles titled “Columbine High School massacre” and “School shootings in the United States” were both among the top 10 most popular, as was the article titled “Colt AR-15” which could be also related.
Now that we have established an apparent trend, let’s take a look to see which Wikipedia articles were the most popular the day after the Las Vegas Shooting that occurred on October 1, 2017.
top2 <- top_articles(start = as.Date("2017-10-2"))
top2 %>%
select(article, views) %>%
filter(!article == "Main_Page", !article == "Special:Search") %>%
datatable(class = 'cell-border stripe') %>%
formatStyle("article", backgroundColor = "lightgoldenrodyellow") %>%
formatStyle("views", backgroundColor = "limegreen")
NA
As our table above shows up, the day after the Las Vegas shooting, the 4th most popular article was titled “2017 Las Vegas Strip shooting”, although seemingly the other popular articles are unrelated.
The findings would seem to confirm with data our common-sense ideas about what people will search for the day after these catastophic events.
- Now, I want to know about the popularity of Wikipedia’s article titled “Gun control” over time, focusing on the week leading up to and the two weeks after each of the two shooting events. I want to visualize these trends on a graph to see how closely they resemble each other and to get a more intuitive visual understanding of each.
First I need to tell R to create items called “vegas” and “florida” which will contain sets of data, with the previously mentioned date ranges (1 week before, 2 weeks after the day of each of the two events), tabulating the views of the “Gun control” article for each of those days in the range per each event.
vegas <- article_pageviews(article = "Gun_control",
start = as.Date("2017-9-24"),
end = as.Date("2017-10-15"))
vegas <- vegas %>%
mutate(day = -7:14) %>%
mutate(event = "Vegas")
florida <- article_pageviews(article = "Gun_control",
start = as.Date("2018-2-7"),
end = as.Date("2018-2-28"))
florida <- florida %>%
mutate(day = -7:14) %>%
mutate(event = "Florida")
Finally, I can tell R to construct the graph using the items “vegas” and “florida” that I mentioned previously.
shootings <- bind_rows(vegas, florida)
shootings %>%
ggplot(aes(x = day, y = views, color = event)) +
geom_line() +
theme_minimal() +
labs(x = "Days before/after Shooting",
y = "Wikipedia Views",
color = "Event",
title = "Views of the Wikipedia Gun Control Article before and after Two Mass Shootings")

Now we can see for ourselves that in the case of both events, the popularity of Wikipedia’s “Gun Control” article was quite low and flat. Immediately following each event, views of the article dramatically spiked and then slowly tapered off again in both cases after about two weeks.
LS0tCnRpdGxlOiAiV2lraXBlZGlhIEFQSSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHBhZ2V2aWV3cykgICAgICAgICMgVGhpcyBwYWNrYWdlIGdldHMgZGF0YSBvbiBXaWtpcGVkaWEgdmlld2luZwpsaWJyYXJ5KERUKSAgICAgICAgICAgICAgICMgRFQgc3RhbmRzIGZvciBkYXRhdGFibGUsIGFuZCBjcmVhdGVzIGludGVyYWN0aXZlIHRhYmxlcwpgYGAKClVzaW5nIFIsIGFuZCBhIHBhY2thZ2UgdGhhdCBjb250YWlucyBkYXRhIGZyb20gV2lraXBlZGlhIChwYWdldmlld3MsIHdoaWNoIEkgbG9hZGVkIGFib3ZlKSwgd2UgY2FuIHZpZXcgYSBudW1iZXIgb2YgaW50ZXJlc3RpbmcgdHJlbmRzLiBGb3IgZXhhbXBsZSwgd2UgY2FuIGZpbmQgb3V0IHdoaWNoIHdhcyB0aGUgbW9zdCBwb3B1bGFyIFdpa2lwZWRpYSBhcnRpY2xlIG9uIGFueSBnaXZlbiBkYXRlLiBPZiBjb3Vyc2UsIGl0IGNvdWxkIGJlIGV4cGVjdGVkIHRoYXQgaW4gdGhlIGRheXMgZm9sbG93aW5nIGEgbWFqb3IgZXZlbnQsIHJlbGF0ZWQgYXJ0aWNsZXMgd291bGQgYmUgdmlld2VkIG1vcmUgb2Z0ZW4uIEluIHRoaXMgY2FzZSwgSSBhbSBpbnRlcmVzdGVkIGluIGZpbmRpbmcgb3V0IHdoYXQgdGhlIHRvcCBXaWtpcGVkaWEgYXJ0aWNsZXMgd2VyZSAoYnkgdmlld3MpIGluIHRoZSBkYXlzIGJlZm9yZSBhbmQgYWZ0ZXIgbWFzcyBzaG9vdGluZyBldmVudHMgaW4gdGhlIFVuaXRlZCBTdGF0ZXMuIFRoaXMgY2FuIGdpdmUgdXMgaW5zaWdodCBpbnRvIHRoZSB6ZWl0Z2Vpc3QgaW4gdGhvc2UgcGFydGljdWxhciBkYXlzLCBhdCBsZWFzdCBpbiB0ZXJtcyBvZiB3aGF0IHBlb3BsZSB0ZW5kIHRvIHNlYXJjaCBmb3IgdG8gcmVhZCBhYm91dCBvbiBXaWtpcGVkaWEsIG9uZSBvZiB0aGUgbW9zdCBwb3B1bGFyIHdlYnNpdGVzIGluIHRoZSB3b3JsZC4gCgoxLiBGaXJzdCwgSSB3b3VsZCBsaWtlIHRvIHNlZSBhIGdyYXBoIHNob3dpbmcgdHJlbmRzIGluIHZpZXdzIG9mIFdpa2lwZWRpYSdzIEd1biBDb250cm9sIGFydGljbGUgb3ZlciBhIHBlcmlvZCBvZiB5ZWFycy4gU28gSSBhbSBnb2luZyB0byB0ZWxsIFIgdG8gc2VhcmNoIGZvciB0aGUgbnVtYmVyIG9mIHBhZ2Ugdmlld3MgZm9yIHRoYXQgYXJ0aWNsZSBmcm9tIEp1bHkgMSwgMjAxNSB1cCB0aHJvdWdoIEp1bHkgMSwgMjAxOC4gVGhlbiBJIHdpbGwgdGVsbCBSIHRvIHNob3cgdGhpcyBkYXRhIG9uIGEgZ3JhcGguIEFzIHdlIGNhbiBzZWUsIHRoZXJlIGFyZSBhIG51bWJlciBvZiBjb25zcGljdW91cyBzcGlrZXMgaW4gdGhlIHBvcHVsYXJpdHkgb2YgdGhhdCBhcnRpY2xlIGF0IHNlZW1pbmdseSByYW5kb20gcGxhY2VzIGluIHRpbWUuIFRoaXMgd291bGQgcmVhc29uYWJseSBiZSBleHBsYWluZWQgYnkgbWFzcyBzaG9vdGluZ3MgdGhhdCBvY2N1cmVkIGF0IGFib3V0IHRoZSBzYW1lIHRpbWUuIAoKYGBge3J9Cmd1bmNvbnRyb2wgPC0gYXJ0aWNsZV9wYWdldmlld3MoYXJ0aWNsZSA9ICJHdW4gY29udHJvbCIsIHN0YXJ0ID0gYXMuRGF0ZSgiMjAxNS03LTEiKSwgZW5kID0gYXMuRGF0ZSgiMjAxOC03LTEiKSkKYGBgCgpgYGB7cn0KZ3VuY29udHJvbCAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZGF0ZSwgeSA9IHZpZXdzKSkgKwogIGdlb21fbGluZSgpCmBgYAoKCjIuIE5vdyBJIHdvdWxkIGxpa2UgdG8ga25vdywgb24gd2hpY2ggZGF5cyBpbiBwYXJ0aWN1bGFyIGR1cmluZyB0aGF0IHNldmVyYWwgeWVhciBzcGFuIHdhcyB0aGUgR3VuIGNvbnRyb2wgYXJ0aWNsZSB2aWV3ZWQgdGhlIG1vc3QgdGltZXM/IEl0IGlzIHVzZWZ1bCB0byBoYXZlIHRoaXMgZGF0YSBkaXNwbGF5ZWQgaW4gdGFidWxhciBmb3JtLCB3aGljaCBSIGdpdmVzIHVzIGJ5IGRlZmF1bHQgaW4gdGhpcyBjYXNlLiAKCmBgYHtyfQpndW5jb250cm9sICU+JQogIGFycmFuZ2UoLXZpZXdzKQpgYGAKCgozLiBOb3cgSSB3b3VsZCBsaWtlIHRvIGxvb2sgYXQgdGhlIHR3byBwYXJ0aWN1bGFyIG1hc3Mgc2hvb3RpbmcgZXZlbnRzIEkgYW0gbG9va2luZyBhdCBkYXRhIGFib3V0IGZvciB0aGlzIGFzc2lnbm1lbnQuIEkgd2lsbCBtZW50aW9uIGVhY2ggaW4gdHVybi4gTXkgZ29hbCBpcyB0byBmaW5kIG91dCB3aGF0IHRoZSB0b3AgYXJ0aWNsZXMgd2VyZSBpbiB0aGUgZm9sbG93aW5nIGRheSBmb3IgZWFjaCBvZiB0aGVzZSBldmVudHMgcmVzcGVjdGl2ZWx5LiBUaGUgcXVlc3Rpb24gaXM6IHdlcmUgcGVvcGxlIHNlYXJjaGluZyBXaWtpcGVkaWEgZm9yIGluZm9ybWF0aW9uIGFib3V0IChvciByZWxhdGVkIHRvKSB0aGVzZSBldmVudHMgdGhlIGRheSBhZnRlciB0aGV5IGhhZCBvY2N1cnJlZD8gCgpGaXJzdCB3ZSB3aWxsIGxvb2sgYXQgdGhlIFN0b25lbWFuIERvdWdsYXMgSGlnaCBTY2hvb2wgc2hvb3RpbmcsIGFsc28ga25vd24gYXMgdGhlICJGbG9yaWRhIFNob290aW5nIiwgb2NjdXJyZWQgb24gRmVicnVhcnkgMTQsIDIwMTguIEl0IHdvdWxkIHNlZW0gcmVhc29uYWJsZSB0byBhc3N1bWUgdGhhdCB0aGUgdG9wIFdpa2lwZWRpYSBzZWFyY2hlcyBmcm9tIHRoZSBmb2xsb3dpbmcgZGF5IG1pZ2h0IGluY2x1ZGUgc29tZSBhcnRpY2xlcyB0aGF0IHdvdWxkIHJlZmVyIHRvIGNvbnRlbnQgcmVsYXRlZCB0byBtYXNzIHNob290aW5ncy4gCgpgYGB7cn0KdG9wIDwtIHRvcF9hcnRpY2xlcyhzdGFydCA9IGFzLkRhdGUoIjIwMTgtMi0xNSIpKQpgYGAKCmBgYHtyfQp0b3AgJT4lIAogIHNlbGVjdChhcnRpY2xlLCB2aWV3cykgJT4lCiAgZmlsdGVyKCFhcnRpY2xlID09ICJNYWluX1BhZ2UiLCAhYXJ0aWNsZSA9PSAiU3BlY2lhbDpTZWFyY2giKSAlPiUgCiAgZGF0YXRhYmxlKGNsYXNzID0gJ2NlbGwtYm9yZGVyIHN0cmlwZScpICU+JSAKICBmb3JtYXRTdHlsZSgiYXJ0aWNsZSIsIGJhY2tncm91bmRDb2xvciA9ICJsaWdodGdvbGRlbnJvZHllbGxvdyIpICU+JSAKICBmb3JtYXRTdHlsZSgidmlld3MiLCBiYWNrZ3JvdW5kQ29sb3IgPSAibGltZWdyZWVuIikKCmBgYAoKQXMgb3VyIHJlc3VsdHMgc2hvdyBpbiB0aGUgdGFibGUgYWJvdmUsIHRoZSBkYXkgYWZ0ZXIgdGhlIEZsb3JpZGEgU2hvb3RpbmcsIGFydGljbGVzIHRpdGxlZCAiQ29sdW1iaW5lIEhpZ2ggU2Nob29sIG1hc3NhY3JlIiBhbmQgIlNjaG9vbCBzaG9vdGluZ3MgaW4gdGhlIFVuaXRlZCBTdGF0ZXMiIHdlcmUgYm90aCBhbW9uZyB0aGUgdG9wIDEwIG1vc3QgcG9wdWxhciwgYXMgd2FzIHRoZSBhcnRpY2xlIHRpdGxlZCAiQ29sdCBBUi0xNSIgd2hpY2ggY291bGQgYmUgYWxzbyByZWxhdGVkLiAKCk5vdyB0aGF0IHdlIGhhdmUgZXN0YWJsaXNoZWQgYW4gYXBwYXJlbnQgdHJlbmQsIGxldCdzIHRha2UgYSBsb29rIHRvIHNlZSB3aGljaCBXaWtpcGVkaWEgYXJ0aWNsZXMgd2VyZSB0aGUgbW9zdCBwb3B1bGFyIHRoZSBkYXkgYWZ0ZXIgdGhlIExhcyBWZWdhcyBTaG9vdGluZyB0aGF0IG9jY3VycmVkIG9uIE9jdG9iZXIgMSwgMjAxNy4gCgpgYGB7cn0KdG9wMiA8LSB0b3BfYXJ0aWNsZXMoc3RhcnQgPSBhcy5EYXRlKCIyMDE3LTEwLTIiKSkKYGBgCgpgYGB7cn0KdG9wMiAlPiUgCiAgc2VsZWN0KGFydGljbGUsIHZpZXdzKSAlPiUKICBmaWx0ZXIoIWFydGljbGUgPT0gIk1haW5fUGFnZSIsICFhcnRpY2xlID09ICJTcGVjaWFsOlNlYXJjaCIpICU+JSAKICBkYXRhdGFibGUoY2xhc3MgPSAnY2VsbC1ib3JkZXIgc3RyaXBlJykgJT4lIAogIGZvcm1hdFN0eWxlKCJhcnRpY2xlIiwgYmFja2dyb3VuZENvbG9yID0gImxpZ2h0Z29sZGVucm9keWVsbG93IikgJT4lIAogIGZvcm1hdFN0eWxlKCJ2aWV3cyIsIGJhY2tncm91bmRDb2xvciA9ICJsaW1lZ3JlZW4iKQoKYGBgCgpBcyBvdXIgdGFibGUgYWJvdmUgc2hvd3MgdXAsIHRoZSBkYXkgYWZ0ZXIgdGhlIExhcyBWZWdhcyBzaG9vdGluZywgdGhlIDR0aCBtb3N0IHBvcHVsYXIgYXJ0aWNsZSB3YXMgdGl0bGVkICIyMDE3IExhcyBWZWdhcyBTdHJpcCBzaG9vdGluZyIsIGFsdGhvdWdoIHNlZW1pbmdseSB0aGUgb3RoZXIgcG9wdWxhciBhcnRpY2xlcyBhcmUgdW5yZWxhdGVkLiAKClRoZSBmaW5kaW5ncyB3b3VsZCBzZWVtIHRvIGNvbmZpcm0gd2l0aCBkYXRhIG91ciBjb21tb24tc2Vuc2UgaWRlYXMgYWJvdXQgd2hhdCBwZW9wbGUgd2lsbCBzZWFyY2ggZm9yIHRoZSBkYXkgYWZ0ZXIgdGhlc2UgY2F0YXN0b3BoaWMgZXZlbnRzLiAKCjQuIE5vdywgSSB3YW50IHRvIGtub3cgYWJvdXQgdGhlIHBvcHVsYXJpdHkgb2YgV2lraXBlZGlhJ3MgYXJ0aWNsZSB0aXRsZWQgIkd1biBjb250cm9sIiBvdmVyIHRpbWUsIGZvY3VzaW5nIG9uIHRoZSB3ZWVrIGxlYWRpbmcgdXAgdG8gYW5kIHRoZSB0d28gd2Vla3MgYWZ0ZXIgZWFjaCBvZiB0aGUgdHdvIHNob290aW5nIGV2ZW50cy4gSSB3YW50IHRvIHZpc3VhbGl6ZSB0aGVzZSB0cmVuZHMgb24gYSBncmFwaCB0byBzZWUgaG93IGNsb3NlbHkgdGhleSByZXNlbWJsZSBlYWNoIG90aGVyIGFuZCB0byBnZXQgYSBtb3JlIGludHVpdGl2ZSB2aXN1YWwgdW5kZXJzdGFuZGluZyBvZiBlYWNoLiAKCkZpcnN0IEkgbmVlZCB0byB0ZWxsIFIgdG8gY3JlYXRlIGl0ZW1zIGNhbGxlZCAidmVnYXMiIGFuZCAiZmxvcmlkYSIgd2hpY2ggd2lsbCBjb250YWluIHNldHMgb2YgZGF0YSwgd2l0aCB0aGUgcHJldmlvdXNseSBtZW50aW9uZWQgZGF0ZSByYW5nZXMgKDEgd2VlayBiZWZvcmUsIDIgd2Vla3MgYWZ0ZXIgdGhlIGRheSBvZiBlYWNoIG9mIHRoZSB0d28gZXZlbnRzKSwgdGFidWxhdGluZyB0aGUgdmlld3Mgb2YgdGhlICJHdW4gY29udHJvbCIgYXJ0aWNsZSBmb3IgZWFjaCBvZiB0aG9zZSBkYXlzIGluIHRoZSByYW5nZSBwZXIgZWFjaCBldmVudC4gCgpgYGB7cn0KdmVnYXMgPC0gYXJ0aWNsZV9wYWdldmlld3MoYXJ0aWNsZSA9ICJHdW5fY29udHJvbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gYXMuRGF0ZSgiMjAxNy05LTI0IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IGFzLkRhdGUoIjIwMTctMTAtMTUiKSkKCnZlZ2FzIDwtIHZlZ2FzICU+JSAKICBtdXRhdGUoZGF5ID0gLTc6MTQpICU+JSAKICBtdXRhdGUoZXZlbnQgPSAiVmVnYXMiKQoKYGBgCgpgYGB7cn0KZmxvcmlkYSA8LSBhcnRpY2xlX3BhZ2V2aWV3cyhhcnRpY2xlID0gIkd1bl9jb250cm9sIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBhcy5EYXRlKCIyMDE4LTItNyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBhcy5EYXRlKCIyMDE4LTItMjgiKSkKCmZsb3JpZGEgPC0gZmxvcmlkYSAlPiUgCiAgbXV0YXRlKGRheSA9IC03OjE0KSAlPiUgCiAgbXV0YXRlKGV2ZW50ID0gIkZsb3JpZGEiKQoKYGBgCgpGaW5hbGx5LCBJIGNhbiB0ZWxsIFIgdG8gY29uc3RydWN0IHRoZSBncmFwaCB1c2luZyB0aGUgaXRlbXMgInZlZ2FzIiBhbmQgImZsb3JpZGEiIHRoYXQgSSBtZW50aW9uZWQgcHJldmlvdXNseS4gCgpgYGB7cn0Kc2hvb3RpbmdzIDwtIGJpbmRfcm93cyh2ZWdhcywgZmxvcmlkYSkKCnNob290aW5ncyAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZGF5LCB5ID0gdmlld3MsIGNvbG9yID0gZXZlbnQpKSArCiAgZ2VvbV9saW5lKCkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgbGFicyh4ID0gIkRheXMgYmVmb3JlL2FmdGVyIFNob290aW5nIiwgCiAgICAgICB5ID0gIldpa2lwZWRpYSBWaWV3cyIsIAogICAgICAgY29sb3IgPSAiRXZlbnQiLCAKICAgICAgIHRpdGxlID0gIlZpZXdzIG9mIHRoZSBXaWtpcGVkaWEgR3VuIENvbnRyb2wgQXJ0aWNsZSBiZWZvcmUgYW5kIGFmdGVyIFR3byBNYXNzIFNob290aW5ncyIpCmBgYAoKTm93IHdlIGNhbiBzZWUgZm9yIG91cnNlbHZlcyB0aGF0IGluIHRoZSBjYXNlIG9mIGJvdGggZXZlbnRzLCB0aGUgcG9wdWxhcml0eSBvZiBXaWtpcGVkaWEncyAiR3VuIENvbnRyb2wiIGFydGljbGUgd2FzIHF1aXRlIGxvdyBhbmQgZmxhdC4gSW1tZWRpYXRlbHkgZm9sbG93aW5nIGVhY2ggZXZlbnQsIHZpZXdzIG9mIHRoZSBhcnRpY2xlIGRyYW1hdGljYWxseSBzcGlrZWQgYW5kIHRoZW4gc2xvd2x5IHRhcGVyZWQgb2ZmIGFnYWluIGluIGJvdGggY2FzZXMgYWZ0ZXIgYWJvdXQgdHdvIHdlZWtzLiAK