I chose to do my search on Jimmy Fallon. This first chunk retrieves all of the data on tweets that others are making about Jimmy fallon.

fallon <- search_tweets("Jimmy Fallon", n = 1000, include_rts = F)

Downloading [=======>---------------------------------]  20%
Downloading [===========>-----------------------------]  30%
Downloading [===============>-------------------------]  40%
Downloading [===================>---------------------]  50%
Downloading [========================>----------------]  60%
Downloading [============================>------------]  70%
Downloading [================================>--------]  80%
Downloading [====================================>----]  90%
Downloading [=========================================] 100%

Using the above data, this next chunk creates a table of the top most popular tweets with “Jimmy Fallon”.

fallon %>% 
  select(text, retweet_count) %>%    
  top_n(25) %>%                       # get the top 25 most popular tweets
  arrange(-retweet_count) %>%         # sort in descending order of popularity
  datatable()
Selecting by retweet_count

This next chunk then retrieves all the tweets that jimmy fallon himself has made on his own twitter page.

fallon_tweets <- get_timeline("jimmyfallon", n = 5000)

Using the information retrieved from above, this chunk finds the hashtags Jimmy Fallon uses the most and creates a table.

fallon_tweets %>% 
  select(hashtags) %>%                   # Focus on the hashtags
  unnest() %>%                           # Separate multiple hashtags
  mutate(hashtags = tolower(hashtags)) %>%      # make all hashtags lowercase
  count(hashtags, sort=TRUE) %>%                # count how often they appear
  datatable()                                   # create an interactive table
`cols` is now required when using unnest().
Please use `cols = c(hashtags)`

This next chunk finds how many tweets per day and organizes it into a table.

fallon_tweets %>% 
  group_by(day = date(created_at)) %>%    # extract the date, group by it
  summarize(tweets_per_day = n())         # count the number of tweets each day

This chunk now finds the average number of tweets Jimmy Fallon makes per day.

fallon_tweets %>% 
  group_by(day = date(created_at)) %>%    # extract the date, group by it
  summarize(tweets_per_day = n()) %>%        # count the number of tweets each day
  summarize(mean(tweets_per_day))

Now, using plotly this next chunk shows the number of tweets per day from Jimmy Fallon in a histogram rather than a table.

fallon_tweets %>%
  mutate(day = date(created_at)) %>% 
  plot_ly(x = ~day) %>%                                        
  add_histogram() %>%
  layout(title = "Number of tweets from @jimmyfallon")

This next chunk then uses the data to find how many tweets per hour of the day Jimmy Fallon tweets. It also takes into account his time zone which I believe is Los Angeles.

fallon_tweets %>% 
  mutate(time = with_tz(created_at, "America/Los_Angeles")) %>% 
  mutate(time = hour(time)) %>% 
  count(time) %>% 
  datatable(options = (list(pageLength = 24)), rownames = F)

This next chunk then changes the table into a plotly histogram of how many tweets Jimmy fallon makes at each hour.

fallon_tweets %>% 
  mutate(time = with_tz(created_at, "America/Los_Angeles")) %>%    # convert to Los Angeles time zone
  mutate(time = hour(time)) %>%                                 # extract the hour
  plot_ly(x = ~time) %>%                                        # create plotly graph
  add_histogram() %>%                                          # make histogram
  layout(title = "When Does @jimmyfallon Tweet?", 
         xaxis = list(title = "Time of Day (0 = midnight)"),
         yaxis = list(title = "Number of Tweets"))
NA

This next chunk then organizes the tweets by day, showing on average how many tweets Jimmy Fallon makes on each day of the week.

fallon_tweets %>% 
  mutate(Day = wday(created_at,           # find the weekday that the tweet was created
                    label = T)) %>%       # use labels (Sun, Mon, etc) rather than numbers
  count(Day) %>%                          # count the number of tweets each day
  datatable(rownames = F)

The next chunk then converts the table into a histogram showing the same data of tweets each weekday.

fallon_tweets %>% 
  mutate(Day = wday(created_at,           # find the weekday that the tweet was created
                    label = T)) %>%       # use labels (Sun, Mon, etc) rather than numbers
   plot_ly(x = ~Day) %>%                                        # create plotly graph
  add_histogram() %>%                                          # make histogram
  layout(title = "When Does @jimmyfallon Tweet?", 
         xaxis = list(title = "Days of the week"),
         yaxis = list(title = "Number of Tweets"))

This last chunk combines the information from the histograms and creates a heat map showing which hour of each day Jimmy fallon tweets the most.

fallon_tweets %>% 
  mutate(day = wday(created_at, label = T)) %>% 
  mutate(hour = hour(with_tz(created_at, "America/Los_Angeles"))) %>% 
  plot_ly(x = ~day, y = ~hour) %>% 
  add_histogram2d(nbinsx = 7, nbinsy = 24) %>%
  layout(title = "When Does @jimmyfallon Tweet?", 
         xaxis = list(title = "Days of the week"),
         yaxis = list(title = "hour"))
NA
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpJIGNob3NlIHRvIGRvIG15IHNlYXJjaCBvbiBKaW1teSBGYWxsb24uIFRoaXMgZmlyc3QgY2h1bmsgcmV0cmlldmVzIGFsbCBvZiB0aGUgZGF0YSBvbiB0d2VldHMgdGhhdCBvdGhlcnMgYXJlIG1ha2luZyBhYm91dCBKaW1teSBmYWxsb24uDQpgYGB7cn0NCmZhbGxvbiA8LSBzZWFyY2hfdHdlZXRzKCJKaW1teSBGYWxsb24iLCBuID0gMTAwMCwgaW5jbHVkZV9ydHMgPSBGKQ0KYGBgDQpVc2luZyB0aGUgYWJvdmUgZGF0YSwgdGhpcyBuZXh0IGNodW5rIGNyZWF0ZXMgYSB0YWJsZSBvZiB0aGUgdG9wIG1vc3QgcG9wdWxhciB0d2VldHMgd2l0aCAiSmltbXkgRmFsbG9uIi4NCmBgYHtyfQ0KZmFsbG9uICU+JSANCiAgc2VsZWN0KHRleHQsIHJldHdlZXRfY291bnQpICU+JSAgICANCiAgdG9wX24oMjUpICU+JSAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIHRvcCAyNSBtb3N0IHBvcHVsYXIgdHdlZXRzDQogIGFycmFuZ2UoLXJldHdlZXRfY291bnQpICU+JSAgICAgICAgICMgc29ydCBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIHBvcHVsYXJpdHkNCiAgZGF0YXRhYmxlKCkNCmBgYA0KVGhpcyBuZXh0IGNodW5rIHRoZW4gcmV0cmlldmVzIGFsbCB0aGUgdHdlZXRzIHRoYXQgamltbXkgZmFsbG9uIGhpbXNlbGYgaGFzIG1hZGUgb24gaGlzIG93biB0d2l0dGVyIHBhZ2UuDQpgYGB7cn0NCmZhbGxvbl90d2VldHMgPC0gZ2V0X3RpbWVsaW5lKCJqaW1teWZhbGxvbiIsIG4gPSA1MDAwKQ0KYGBgDQpVc2luZyB0aGUgaW5mb3JtYXRpb24gcmV0cmlldmVkIGZyb20gYWJvdmUsIHRoaXMgY2h1bmsgZmluZHMgdGhlIGhhc2h0YWdzIEppbW15IEZhbGxvbiB1c2VzIHRoZSBtb3N0IGFuZCBjcmVhdGVzIGEgdGFibGUuDQpgYGB7cn0NCmZhbGxvbl90d2VldHMgJT4lIA0KICBzZWxlY3QoaGFzaHRhZ3MpICU+JSAgICAgICAgICAgICAgICAgICAjIEZvY3VzIG9uIHRoZSBoYXNodGFncw0KICB1bm5lc3QoKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFNlcGFyYXRlIG11bHRpcGxlIGhhc2h0YWdzDQogIG11dGF0ZShoYXNodGFncyA9IHRvbG93ZXIoaGFzaHRhZ3MpKSAlPiUgICAgICAjIG1ha2UgYWxsIGhhc2h0YWdzIGxvd2VyY2FzZQ0KICBjb3VudChoYXNodGFncywgc29ydD1UUlVFKSAlPiUgICAgICAgICAgICAgICAgIyBjb3VudCBob3cgb2Z0ZW4gdGhleSBhcHBlYXINCiAgZGF0YXRhYmxlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY3JlYXRlIGFuIGludGVyYWN0aXZlIHRhYmxlDQpgYGANClRoaXMgbmV4dCBjaHVuayBmaW5kcyBob3cgbWFueSB0d2VldHMgcGVyIGRheSBhbmQgb3JnYW5pemVzIGl0IGludG8gYSB0YWJsZS4NCmBgYHtyfQ0KZmFsbG9uX3R3ZWV0cyAlPiUgDQogIGdyb3VwX2J5KGRheSA9IGRhdGUoY3JlYXRlZF9hdCkpICU+JSAgICAjIGV4dHJhY3QgdGhlIGRhdGUsIGdyb3VwIGJ5IGl0DQogIHN1bW1hcml6ZSh0d2VldHNfcGVyX2RheSA9IG4oKSkgICAgICAgICAjIGNvdW50IHRoZSBudW1iZXIgb2YgdHdlZXRzIGVhY2ggZGF5DQpgYGANClRoaXMgY2h1bmsgbm93IGZpbmRzIHRoZSBhdmVyYWdlIG51bWJlciBvZiB0d2VldHMgSmltbXkgRmFsbG9uIG1ha2VzIHBlciBkYXkuDQpgYGB7cn0NCmZhbGxvbl90d2VldHMgJT4lIA0KICBncm91cF9ieShkYXkgPSBkYXRlKGNyZWF0ZWRfYXQpKSAlPiUgICAgIyBleHRyYWN0IHRoZSBkYXRlLCBncm91cCBieSBpdA0KICBzdW1tYXJpemUodHdlZXRzX3Blcl9kYXkgPSBuKCkpICU+JSAgICAgICAgIyBjb3VudCB0aGUgbnVtYmVyIG9mIHR3ZWV0cyBlYWNoIGRheQ0KICBzdW1tYXJpemUobWVhbih0d2VldHNfcGVyX2RheSkpDQpgYGANCk5vdywgdXNpbmcgcGxvdGx5IHRoaXMgbmV4dCBjaHVuayBzaG93cyB0aGUgbnVtYmVyIG9mIHR3ZWV0cyBwZXIgZGF5IGZyb20gSmltbXkgRmFsbG9uIGluIGEgaGlzdG9ncmFtIHJhdGhlciB0aGFuIGEgdGFibGUuDQpgYGB7cn0NCmZhbGxvbl90d2VldHMgJT4lDQogIG11dGF0ZShkYXkgPSBkYXRlKGNyZWF0ZWRfYXQpKSAlPiUgDQogIHBsb3RfbHkoeCA9IH5kYXkpICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgYWRkX2hpc3RvZ3JhbSgpICU+JQ0KICBsYXlvdXQodGl0bGUgPSAiTnVtYmVyIG9mIHR3ZWV0cyBmcm9tIEBqaW1teWZhbGxvbiIpDQpgYGANClRoaXMgbmV4dCBjaHVuayB0aGVuIHVzZXMgdGhlIGRhdGEgdG8gZmluZCBob3cgbWFueSB0d2VldHMgcGVyIGhvdXIgb2YgdGhlIGRheSBKaW1teSBGYWxsb24gdHdlZXRzLiBJdCBhbHNvIHRha2VzIGludG8gYWNjb3VudCBoaXMgdGltZSB6b25lIHdoaWNoIEkgYmVsaWV2ZSBpcyBMb3MgQW5nZWxlcy4NCmBgYHtyfQ0KZmFsbG9uX3R3ZWV0cyAlPiUgDQogIG11dGF0ZSh0aW1lID0gd2l0aF90eihjcmVhdGVkX2F0LCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIpKSAlPiUgDQogIG11dGF0ZSh0aW1lID0gaG91cih0aW1lKSkgJT4lIA0KICBjb3VudCh0aW1lKSAlPiUgDQogIGRhdGF0YWJsZShvcHRpb25zID0gKGxpc3QocGFnZUxlbmd0aCA9IDI0KSksIHJvd25hbWVzID0gRikNCmBgYA0KVGhpcyBuZXh0IGNodW5rIHRoZW4gY2hhbmdlcyB0aGUgdGFibGUgaW50byBhIHBsb3RseSBoaXN0b2dyYW0gb2YgaG93IG1hbnkgdHdlZXRzIEppbW15IGZhbGxvbiBtYWtlcyBhdCBlYWNoIGhvdXIuDQpgYGB7cn0NCmZhbGxvbl90d2VldHMgJT4lIA0KICBtdXRhdGUodGltZSA9IHdpdGhfdHooY3JlYXRlZF9hdCwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKSkgJT4lICAgICMgY29udmVydCB0byBMb3MgQW5nZWxlcyB0aW1lIHpvbmUNCiAgbXV0YXRlKHRpbWUgPSBob3VyKHRpbWUpKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGV4dHJhY3QgdGhlIGhvdXINCiAgcGxvdF9seSh4ID0gfnRpbWUpICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNyZWF0ZSBwbG90bHkgZ3JhcGgNCiAgYWRkX2hpc3RvZ3JhbSgpICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbWFrZSBoaXN0b2dyYW0NCiAgbGF5b3V0KHRpdGxlID0gIldoZW4gRG9lcyBAamltbXlmYWxsb24gVHdlZXQ/IiwgDQogICAgICAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiVGltZSBvZiBEYXkgKDAgPSBtaWRuaWdodCkiKSwNCiAgICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJOdW1iZXIgb2YgVHdlZXRzIikpDQoNCmBgYA0KVGhpcyBuZXh0IGNodW5rIHRoZW4gb3JnYW5pemVzIHRoZSB0d2VldHMgYnkgZGF5LCBzaG93aW5nIG9uIGF2ZXJhZ2UgaG93IG1hbnkgdHdlZXRzIEppbW15IEZhbGxvbiBtYWtlcyBvbiBlYWNoIGRheSBvZiB0aGUgd2Vlay4NCmBgYHtyfQ0KZmFsbG9uX3R3ZWV0cyAlPiUgDQogIG11dGF0ZShEYXkgPSB3ZGF5KGNyZWF0ZWRfYXQsICAgICAgICAgICAjIGZpbmQgdGhlIHdlZWtkYXkgdGhhdCB0aGUgdHdlZXQgd2FzIGNyZWF0ZWQNCiAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSBUKSkgJT4lICAgICAgICMgdXNlIGxhYmVscyAoU3VuLCBNb24sIGV0YykgcmF0aGVyIHRoYW4gbnVtYmVycw0KICBjb3VudChEYXkpICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb3VudCB0aGUgbnVtYmVyIG9mIHR3ZWV0cyBlYWNoIGRheQ0KICBkYXRhdGFibGUocm93bmFtZXMgPSBGKQ0KYGBgDQpUaGUgbmV4dCBjaHVuayB0aGVuIGNvbnZlcnRzIHRoZSB0YWJsZSBpbnRvIGEgaGlzdG9ncmFtIHNob3dpbmcgdGhlIHNhbWUgZGF0YSBvZiB0d2VldHMgZWFjaCB3ZWVrZGF5Lg0KYGBge3J9DQpmYWxsb25fdHdlZXRzICU+JSANCiAgbXV0YXRlKERheSA9IHdkYXkoY3JlYXRlZF9hdCwgICAgICAgICAgICMgZmluZCB0aGUgd2Vla2RheSB0aGF0IHRoZSB0d2VldCB3YXMgY3JlYXRlZA0KICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IFQpKSAlPiUgICAgICAgIyB1c2UgbGFiZWxzIChTdW4sIE1vbiwgZXRjKSByYXRoZXIgdGhhbiBudW1iZXJzDQogICBwbG90X2x5KHggPSB+RGF5KSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjcmVhdGUgcGxvdGx5IGdyYXBoDQogIGFkZF9oaXN0b2dyYW0oKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG1ha2UgaGlzdG9ncmFtDQogIGxheW91dCh0aXRsZSA9ICJXaGVuIERvZXMgQGppbW15ZmFsbG9uIFR3ZWV0PyIsIA0KICAgICAgICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIkRheXMgb2YgdGhlIHdlZWsiKSwNCiAgICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJOdW1iZXIgb2YgVHdlZXRzIikpDQpgYGANClRoaXMgbGFzdCBjaHVuayBjb21iaW5lcyB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgaGlzdG9ncmFtcyBhbmQgY3JlYXRlcyBhIGhlYXQgbWFwIHNob3dpbmcgd2hpY2ggaG91ciBvZiBlYWNoIGRheSBKaW1teSBmYWxsb24gdHdlZXRzIHRoZSBtb3N0Lg0KYGBge3J9DQpmYWxsb25fdHdlZXRzICU+JSANCiAgbXV0YXRlKGRheSA9IHdkYXkoY3JlYXRlZF9hdCwgbGFiZWwgPSBUKSkgJT4lIA0KICBtdXRhdGUoaG91ciA9IGhvdXIod2l0aF90eihjcmVhdGVkX2F0LCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIpKSkgJT4lIA0KICBwbG90X2x5KHggPSB+ZGF5LCB5ID0gfmhvdXIpICU+JSANCiAgYWRkX2hpc3RvZ3JhbTJkKG5iaW5zeCA9IDcsIG5iaW5zeSA9IDI0KSAlPiUNCiAgbGF5b3V0KHRpdGxlID0gIldoZW4gRG9lcyBAamltbXlmYWxsb24gVHdlZXQ/IiwgDQogICAgICAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiRGF5cyBvZiB0aGUgd2VlayIpLA0KICAgICAgICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gImhvdXIiKSkNCiAgDQpgYGANCg0K