Introduction

As far as today’s culture is concerned, anything, including our opinions and experiences, are shared online. For example, Twitter has become a huge outlet for people to share their views and thoughts, particularly in the years 2020 and 2021, due to the election and global pandemic. FIt’s been more than a year since we’ve been recovering from the Covid 19, and include Pfizer, Biontech, several pharmaceutical companies have produced a vaccine. However, people are afraid that the vaccine produced over a brief span of time could have side effects. I am going to evaluate the Pfizer vaccination tweets to identify their views using this dataset of Pfizer Vaccine Tweets. This report would look at the top sources and locations from which people utilize hashtags on the Twitter platform in regard to the Pfizer Vaccine.

Dataset

This data was collected from the Twitter platform. The Pfizer Vaccine data can be found at https://www.kaggle.com/gpreda/pfizer-vaccine-tweets. When examining at this data set that documents the topics of recent vaccine tweets made in association with Pfizer and BioNTech, there are some details that became insignificant when analyzing the data. Of the 16 columns, most of them provided valuable knowledge when it came to learning more about vaccine-related tweets but not necessarily relevant to vizualizatons. Since some details were not very significant, I removed the columns and created a database to keep track of the vaccine-related tweets. A description of the cleanup information can be found in the appendix below.

Findings

Tweets by User Location

One of the first things to look at to better understand this dataset and the users on the Twitter platform, is to look at where they come from. This nested pie chart shows where tha majority of the users on the Twitter platform are generally from, however, many users tag locations that are unknown or funny phrases. While this does skew that data, it still gives us a better understanding of the top two locations where tweets were from, England (specifically London) and Canada. This allows for us to see while England and Canada were listed in the top three countries for tweets related to the pandemic, it also shows a larger percentage of tweets that are from other locations around the globe that did not fall under the top three and any locations that fall into the data of made up locations (null). This gives the persepcetive of who is tweeting about the pandemic and where.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:data.table':
## 
##     between, first, last
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:data.table':
## 
##     hour, isoweek, mday, minute, month, quarter, second, wday, week,
##     yday, year
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(ggplot2)
library(ggthemes)


location_df <- df %>%
  select(userlocation, date) %>%
  mutate(year = year(mdy_hm(date)),
         mylocation = ifelse(userlocation=="London, England", "London, England", ifelse(userlocation=="Canada", "Canada", "Other"))) %>%
  group_by(year, mylocation) %>%
  summarise(n=length(mylocation), .groups='keep') %>%
  group_by(year) %>%
  mutate(percent_of_total = round(100*n/sum(n),1)) %>%
  ungroup() %>%
  data.frame()
location_df
##   year      mylocation    n percent_of_total
## 1 2020          Canada   17              0.9
## 2 2020 London, England   30              1.5
## 3 2020           Other 1506             76.1
## 4 2020            <NA>  427             21.6
## 5 2021          Canada   56              1.4
## 6 2021 London, England   57              1.4
## 7 2021           Other 3111             76.8
## 8 2021            <NA>  828             20.4
location_df[location_df$year == 2020,]
##   year      mylocation    n percent_of_total
## 1 2020          Canada   17              0.9
## 2 2020 London, England   30              1.5
## 3 2020           Other 1506             76.1
## 4 2020            <NA>  427             21.6
str(location_df)
## 'data.frame':    8 obs. of  4 variables:
##  $ year            : num  2020 2020 2020 2020 2021 ...
##  $ mylocation      : chr  "Canada" "London, England" "Other" NA ...
##  $ n               : int  17 30 1506 427 56 57 3111 828
##  $ percent_of_total: num  0.9 1.5 76.1 21.6 1.4 1.4 76.8 20.4
location_df$mylocation = factor(location_df$mylocation, levels = c("London, England", "Canada", "Other"))
ggplot(data = location_df, aes(x="", y = n, fill = mylocation)) +
  geom_bar(stat = "identity", position = "fill") +
  coord_polar(theta = "y", start = 0) +
  labs(fill = "Location", x = NULL, y = NULL, title = "Tweets Count by User Location and Year",
       caption = "Slices under %5 are not labeled") +
  theme_light() +
  theme(plot.title = element_text(hjust = 0.5),
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        panel.grid = element_blank()) +
  facet_wrap(~year, ncol = 3, nrow = 3) +
  scale_fill_brewer(palette = "Blues") +
  geom_text(aes(x=1.7, label=ifelse(percent_of_total>5,paste0(percent_of_total, "%"),"")),
            size=4,
            position=position_fill(vjust = 0.5))

Using these pie charts, we can easily see that users tweeting about the vaccine are largely from other countries that are not specifically Canada and England, or places that users made up for fun on the platform. This can help us better understand what locations in 2020 and in 2021, real or made up, produce the most tweets regarding the Covid 19 vaccine.

Tweets by Source

To further understand the dataset, we can look at the top ten sources that users use to post on the Twitter platform. Of all the sources that were used, I was curious to see what sources were most used for the distribution of the vaccine hashtags. When transcribing the data, I anticipated more IPhone tweets.

library(dplyr)
count(df, source)
##                             source    n
##  1:                     24liveblog    4
##  2:                Blog2Social APP    6
##  3:                         Buffer   43
##  4:                     CoSchedule    2
##  5:                       EastMojo    1
##  6:                        Echobox    3
##  7:                   ETRetail.com    2
##  8: Falcon Social Media Management    2
##  9:                     GT_Backend    2
## 10:         Hocalwire Social Share    1
## 11:                 Hootsuite Inc.   30
## 12:                          IFTTT   10
## 13:                      Instagram   43
## 14:                       LinkedIn    6
## 15:       Microsoft Power Platform    5
## 16:                     News Users    1
## 17:                          Nonli    8
## 18:                       Paper.li    2
## 19:                         Publer    1
## 20:                       Sendible    6
## 21:                   Socialbakers    1
## 22:                     SocialFlow    5
## 23:                 SocialNewsDesk    1
## 24:            Sprinklr Publishing    1
## 25:                  Sprout Social    2
## 26:                ThreadReaderApp    1
## 27:               Tweetbot for iΟS    3
## 28:               Tweetbot for Mac    1
## 29:        TweetCaster for Android    1
## 30:                      TweetDeck  347
## 31:            Twitter for Android 1382
## 32:               Twitter for iPad  173
## 33:             Twitter for iPhone 2128
## 34:                Twitter for Mac    4
## 35:           Twitter Media Studio    3
## 36: Twitter Media Studio - LiveCut    1
## 37:                Twitter Web App 1796
## 38:         UberSocial for Android    1
## 39:                  WordPress.com    2
## 40:                           <NA>    1
##                             source    n
tweetcount <- data.frame(count(df, source))
tweetcount
##                            source    n
## 1                      24liveblog    4
## 2                 Blog2Social APP    6
## 3                          Buffer   43
## 4                      CoSchedule    2
## 5                        EastMojo    1
## 6                         Echobox    3
## 7                    ETRetail.com    2
## 8  Falcon Social Media Management    2
## 9                      GT_Backend    2
## 10         Hocalwire Social Share    1
## 11                 Hootsuite Inc.   30
## 12                          IFTTT   10
## 13                      Instagram   43
## 14                       LinkedIn    6
## 15       Microsoft Power Platform    5
## 16                     News Users    1
## 17                          Nonli    8
## 18                       Paper.li    2
## 19                         Publer    1
## 20                       Sendible    6
## 21                   Socialbakers    1
## 22                     SocialFlow    5
## 23                 SocialNewsDesk    1
## 24            Sprinklr Publishing    1
## 25                  Sprout Social    2
## 26                ThreadReaderApp    1
## 27               Tweetbot for iΟS    3
## 28               Tweetbot for Mac    1
## 29        TweetCaster for Android    1
## 30                      TweetDeck  347
## 31            Twitter for Android 1382
## 32               Twitter for iPad  173
## 33             Twitter for iPhone 2128
## 34                Twitter for Mac    4
## 35           Twitter Media Studio    3
## 36 Twitter Media Studio - LiveCut    1
## 37                Twitter Web App 1796
## 38         UberSocial for Android    1
## 39                  WordPress.com    2
## 40                           <NA>    1
tweetcount <- tweetcount[order(tweetcount$n, decreasing = TRUE), ]
tweetcount
##                            source    n
## 33             Twitter for iPhone 2128
## 37                Twitter Web App 1796
## 31            Twitter for Android 1382
## 30                      TweetDeck  347
## 32               Twitter for iPad  173
## 3                          Buffer   43
## 13                      Instagram   43
## 11                 Hootsuite Inc.   30
## 12                          IFTTT   10
## 17                          Nonli    8
## 2                 Blog2Social APP    6
## 14                       LinkedIn    6
## 20                       Sendible    6
## 15       Microsoft Power Platform    5
## 22                     SocialFlow    5
## 1                      24liveblog    4
## 34                Twitter for Mac    4
## 6                         Echobox    3
## 27               Tweetbot for iΟS    3
## 35           Twitter Media Studio    3
## 4                      CoSchedule    2
## 7                    ETRetail.com    2
## 8  Falcon Social Media Management    2
## 9                      GT_Backend    2
## 18                       Paper.li    2
## 25                  Sprout Social    2
## 39                  WordPress.com    2
## 5                        EastMojo    1
## 10         Hocalwire Social Share    1
## 16                     News Users    1
## 19                         Publer    1
## 21                   Socialbakers    1
## 23                 SocialNewsDesk    1
## 24            Sprinklr Publishing    1
## 26                ThreadReaderApp    1
## 28               Tweetbot for Mac    1
## 29        TweetCaster for Android    1
## 36 Twitter Media Studio - LiveCut    1
## 38         UberSocial for Android    1
## 40                           <NA>    1
df$source %in% c(NA,"Twitter for iPhone", "Twitter for Web App")
##    [1] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##   [13] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
##   [25] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE
##   [37] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##   [49] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE
##   [61] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##   [73] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##   [85] FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
##   [97] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
##  [109] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [121] FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [133]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [145] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
##  [157] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
##  [169] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
##  [181] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE
##  [193] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
##  [205] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [217] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [229]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [241] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [253]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [265] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
##  [277]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE
##  [289] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##  [301]  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [313] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [325] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
##  [337] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
##  [349]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE
##  [361]  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [373] FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [385]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
##  [397]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [409]  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE
##  [421]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE
##  [433] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE
##  [445] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [457]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [469]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
##  [481]  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE
##  [493] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
##  [505] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE
##  [517] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
##  [529] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE
##  [541]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE
##  [553] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE
##  [565] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
##  [577] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
##  [589] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [601]  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE
##  [613] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
##  [625] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
##  [637] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
##  [649]  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
##  [661]  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##  [673] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE
##  [685]  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
##  [697]  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [709]  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [721] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE
##  [733] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [745] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
##  [757] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [769] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [781] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [793] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE
##  [805] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
##  [817] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE
##  [829]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE
##  [841] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [853] FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE
##  [865]  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE
##  [877] FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE
##  [889] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
##  [901]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
##  [913] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [925] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
##  [937]  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
##  [949] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE
##  [961]  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE
##  [973] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [985]  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE
##  [997]  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [1009] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
## [1021]  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE
## [1033] FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [1045] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [1057]  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [1069] FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [1081] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1093] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [1105] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1117] FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [1129] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [1141]  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [1153] FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE
## [1165]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [1177] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1189]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1201] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [1213]  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [1225]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [1237] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1249]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [1261]  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
## [1273] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [1285] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1297] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [1309]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1321] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1333]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1345]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE
## [1357] FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [1369] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [1381]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE
## [1393] FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [1405]  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1417] FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1429]  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
## [1441]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1453] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [1465] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [1477] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE
## [1489] FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [1501] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [1513]  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE
## [1525]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [1537] FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [1549] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE
## [1561] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1573] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
## [1585] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [1597] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE
## [1609] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [1621] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [1633]  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [1645] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [1657]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1669] FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [1681]  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [1693] FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [1705] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE
## [1717] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1729] FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [1741] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
## [1753]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1765] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [1777] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1789] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1801] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE
## [1813]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1825]  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [1837] FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [1849]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [1861]  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [1873] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [1885] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [1897] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [1909] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [1921] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [1933] FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE
## [1945] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE
## [1957]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [1969] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [1981] FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE
## [1993] FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
## [2005]  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE
## [2017] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [2029]  TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [2041] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE
## [2053] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [2065]  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [2077] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [2089] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [2101] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [2113] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [2125]  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
## [2137] FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE
## [2149] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [2161] FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [2173] FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [2185] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [2197] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
## [2209]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [2221]  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
## [2233] FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [2245]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [2257]  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [2269] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [2281] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
## [2293] FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [2305] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
## [2317] FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
## [2329]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE
## [2341]  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
## [2353]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [2365]  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [2377] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [2389]  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
## [2401]  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE
## [2413] FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [2425] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [2437] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
## [2449] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE
## [2461]  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
## [2473] FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE
## [2485]  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [2497] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [2509]  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [2521] FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE
## [2533] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE
## [2545]  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [2557]  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE
## [2569] FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [2581]  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE
## [2593]  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [2605] FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [2617] FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
## [2629] FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [2641]  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
## [2653] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE
## [2665] FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [2677]  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
## [2689] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [2701] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [2713] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE
## [2725] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [2737] FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE
## [2749] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [2761]  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [2773] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [2785] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [2797]  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [2809] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE
## [2821]  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE
## [2833] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
## [2845]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [2857]  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [2869]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [2881] FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [2893] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [2905] FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [2917] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE
## [2929] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE
## [2941] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [2953] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
## [2965]  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE
## [2977] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [2989]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [3001] FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [3013] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
## [3025]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
## [3037]  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [3049] FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [3061] FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
## [3073] FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
## [3085] FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
## [3097]  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [3109]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE
## [3121]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE
## [3133]  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE
## [3145]  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [3157] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [3169] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [3181] FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
## [3193] FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE
## [3205]  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE
## [3217]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [3229]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [3241] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [3253]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE
## [3265] FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE
## [3277]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE
## [3289]  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [3301] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
## [3313] FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE
## [3325]  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE
## [3337]  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [3349] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE
## [3361]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE
## [3373]  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [3385]  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE
## [3397]  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [3409]  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [3421]  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE
## [3433]  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [3445] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE
## [3457]  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE
## [3469] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
## [3481]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [3493] FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [3505] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE
## [3517] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE
## [3529] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [3541]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [3553] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [3565]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [3577] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [3589]  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
## [3601]  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [3613]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [3625]  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [3637]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [3649]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
## [3661]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [3673] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [3685]  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [3697]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [3709] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [3721]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [3733] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [3745]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [3757]  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE
## [3769] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [3781] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [3793] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [3805] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
## [3817]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [3829] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE
## [3841] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
## [3853] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE
## [3865] FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE
## [3877] FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE
## [3889] FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE
## [3901]  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [3913]  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [3925] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE
## [3937] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [3949] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE
## [3961]  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE
## [3973] FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [3985] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [3997]  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [4009] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
## [4021] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE
## [4033] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
## [4045] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE
## [4057] FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
## [4069] FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE
## [4081]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
## [4093] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
## [4105] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4117] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4129] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4141]  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
## [4153] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [4165] FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [4177]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [4189] FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE
## [4201] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE
## [4213] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE
## [4225] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE
## [4237]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE
## [4249] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4261] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4273] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [4285] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
## [4297]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE
## [4309] FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4321] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [4333] FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [4345] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [4357] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE
## [4369] FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [4381] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
## [4393] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE
## [4405]  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE
## [4417] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE
## [4429] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
## [4441] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4453] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [4465] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [4477] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [4489]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE
## [4501]  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
## [4513] FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE
## [4525] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4537] FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [4549] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [4561] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [4573] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
## [4585] FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4597] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [4609] FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE
## [4621]  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
## [4633] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [4645] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
## [4657]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [4669] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4681] FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [4693]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE
## [4705] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4717]  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [4729] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [4741] FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [4753] FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [4765]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [4777] FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4789]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [4801] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [4813]  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [4825]  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [4837] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [4849] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE
## [4861] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [4873] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
## [4885]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
## [4897] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [4909] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [4921] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
## [4933] FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [4945]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE
## [4957] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [4969] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [4981]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
## [4993]  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [5005] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [5017]  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE
## [5029] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [5041] FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [5053] FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [5065] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE
## [5077] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [5089] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [5101]  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE
## [5113]  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [5125]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [5137]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE
## [5149] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE
## [5161]  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [5173] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE
## [5185]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
## [5197] FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
## [5209]  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE
## [5221] FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE
## [5233]  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
## [5245] FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE
## [5257] FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [5269]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [5281]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE
## [5293] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [5305] FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [5317] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
## [5329] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [5341] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [5353] FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [5365] FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE
## [5377] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
## [5389] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
## [5401] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [5413]  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [5425] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE
## [5437] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [5449] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE
## [5461]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [5473] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [5485] FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE
## [5497]  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE
## [5509]  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [5521]  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE
## [5533]  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE
## [5545] FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE
## [5557]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE
## [5569] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE
## [5581] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [5593]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [5605] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [5617] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
## [5629] FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
## [5641] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [5653] FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
## [5665] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE
## [5677]  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE
## [5689]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [5701] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
## [5713]  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE
## [5725] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
## [5737]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
## [5749] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [5761] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [5773] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE
## [5785]  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [5797] FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
## [5809] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
## [5821] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [5833]  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
## [5845] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
## [5857] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
## [5869] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
## [5881] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE
## [5893] FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## [5905]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [5917] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [5929] FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE
## [5941] FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE
## [5953] FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE
## [5965] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
## [5977]  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE
## [5989] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [6001] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE
## [6013] FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE
## [6025] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE
top3 <- df[df$source %in% c(NA, "Twitter for iPhone", "Twitter for Web App", "hashtag")]
top3
##             id
##    1: 1.34e+18
##    2: 1.34e+18
##    3: 1.34e+18
##    4: 1.34e+18
##    5: 1.34e+18
##   ---         
## 2125: 1.36e+18
## 2126: 1.36e+18
## 2127: 1.36e+18
## 2128: 1.36e+18
## 2129: 1.36e+18
##                                                                        username
##    1:                                                      Citizen News Channel
##    2:                                                                       Dee
##    3:                                                       Dr.Krutika Kuppalli
##    4:                                                       Dr.Krutika Kuppalli
##    5:                                                                 City A.M.
##   ---                                                                          
## 2125:                                                          David Mclenachan
## 2126:                                                                 BST, M.S.
## 2127: \u062d\u0633\u0646 \u0633\u062c\u0648\u0627\u0646\u064a 🇦🇪 Hassan Sajwani
## 2128:                                                            Tallin Beckett
## 2129:                                                          Berenice Golding
##                      userlocation
##    1:                        <NA>
##    2:         Birmingham, England
##    3:                        <NA>
##    4:                        <NA>
##    5:             London, England
##   ---                            
## 2125:                  Manchester
## 2126:                Arizona, USA
## 2127: Dubai, United Arab Emirates
## 2128:        Albion. Literally 😉
## 2129:            Huddersfield, UK
##                                                                                                                                                                                                                                                                          userdescription
##    1:                                                                                                                                                Citizen News Channel bringing you an alternative news source from citizen journalists that haven't sold out. Real news & real views
##    2:                                                                                                                                                                       Gastroenterology trainee, Clinical Research Fellow in IBD, mother to human and fur baby, Canadian in Britain
##    3:                                                                                                                                   ID, Global Health, VHF, Pandemic Prep, Emerging Infections, & Health Policy MD| U.S. Congress COVID-19 expert witness x 2 | ELBI 2020 @JHSPH_CHS
##    4:                                                                                                                                   ID, Global Health, VHF, Pandemic Prep, Emerging Infections, & Health Policy MD| U.S. Congress COVID-19 expert witness x 2 | ELBI 2020 @JHSPH_CHS
##    5:                                                                                                                                                                          London's business newspaper - News, Opinion, and Analysis. For all distribution queries, see @CityAMDist.
##   ---                                                                                                                                                                                                                                                                                   
## 2125:                                                                                                                                                                                                                                                          headphones on & world off
## 2126:                                                                                                                                          First-Gen & LatinX 🇲🇽🇨🇴 From statistic to — BioEngineer🦾 | Researcher 🧬👨🏽‍🔬 | Rising MS1, M.D.👨🏽‍⚕\ufe0f Let’s close these gaps. 🗣🔥
## 2127: Hassan Sajwani an #Emirati tweets #news #tech business #counterTerrorism, politics, RTs not endorsements.Patriot #\u0627\u0644\u0644\u0647_\u062b\u0645_\u0627\u0644\u0648\u0637\u0646_\u062b\u0645_\u0631\u0626\u064a\u0633_\u0627\u0644\u062f\u0648\u0644\u0629 Personal account
## 2128:                                                                                                                                                 Reavers wife and pirate Hero of Skill from Bloodstone. I like drinking, gambling, shooting. Captain Dread’s daughter | Fable R.P |
## 2129:                                                                                                                          Senior Lecturer: interests ARTs, EGIDs, diversity, equality, food allergy, social justice. Chair of Governors. HTAFC fan. Tweets personal & professional.
##          usercreated userfollowers userfriends userfavourites userverified
##    1:  4/23/20 17:58           152         580           1473        FALSE
##    2:  1/26/20 21:43           105         108            106        FALSE
##    3:   3/25/19 4:14         21924         593           7815         TRUE
##    4:   3/25/19 4:14         21924         593           7815         TRUE
##    5:   6/9/09 13:53         66224         603            771         TRUE
##   ---                                                                     
## 2125:   7/1/11 19:09           515         659           7109        FALSE
## 2126:   10/4/17 2:27            77         285            324        FALSE
## 2127:  12/8/11 17:40         94270         598          33641         TRUE
## 2128: 12/19/13 11:04            66          51           3560        FALSE
## 2129:  2/26/09 10:08          1400        2123          62834        FALSE
##                 date
##    1: 12/12/20 20:17
##    2: 12/12/20 20:11
##    3: 12/12/20 20:04
##    4: 12/12/20 17:19
##    5: 12/12/20 16:00
##   ---               
## 2125:  2/16/21 18:20
## 2126:  2/16/21 18:11
## 2127:  2/16/21 15:23
## 2128:  2/16/21 14:52
## 2129:  2/16/21 14:41
##                                                                                                                                                  text
##    1:         Explain to me again why we need a vaccine @BorisJohnson @MattHancock #whereareallthesickpeople #PfizerBioNTech… https://t.co/KxbSRoBEHq
##    2:                Does anyone have any useful advice/guidance for whether the COVID vaccine is safe whilst breastfeeding?… https://t.co/EifsyQoeKN
##    3:     There have not been many bright days in 2020 but here are some of the best \n1. #BidenHarris winning #Election2020… https://t.co/77u4f8XXfx
##    4:                For all the women and healthcare providers who have been asking about the safety of the #PfizerBioNTech… https://t.co/ow0Pglkwte
##    5:             Trump announces #vaccine rollout 'in less than 24 hours'\n\nThe first Americans will be vaccinated against… https://t.co/2FzQSMnhoY
##   ---                                                                                                                                                
## 2125:    Really super efficient operation at the @WPLifestyleCent today. No waiting! No queues! Great to be part of the team… https://t.co/rMimpOpfZU
## 2126:              Today is a beautiful day. My heart is full to finally see it in front of me. 19 days post 2nd dose of the… https://t.co/Srk8YW0gsM
## 2127:            The UAE 🇦🇪 now offers all 4 vaccines:\n\n💉 #PfizerBioNTech \n💉 #AstraZeneca \n💉 #Sinopharm \n💉 #SputnikV https://t.co/8STTSLLs8F
## 2128: Just had my first dose of the #PfizerBioNTech vaccine. 👍🏻\nGerman vaccine administered by a German doctor. Could you… https://t.co/Jf8cMS56Fw
## 2129:                                                                                  @LucyAdvocacySS Should have said I had #PfizerBiontech vaccine
##                                                         hashtags
##    1:             ['whereareallthesickpeople', 'PfizerBioNTech']
##    2:                                                       <NA>
##    3:                            ['BidenHarris', 'Election2020']
##    4:                                         ['PfizerBioNTech']
##    5:                                                ['vaccine']
##   ---                                                           
## 2125:                                                       <NA>
## 2126:                                                       <NA>
## 2127: ['PfizerBioNTech', 'AstraZeneca', 'Sinopharm', 'SputnikV']
## 2128:                                         ['PfizerBioNTech']
## 2129:                                         ['PfizerBiontech']
##                   source retweets favorites isretweet
##    1: Twitter for iPhone        0         0     FALSE
##    2: Twitter for iPhone        0         0     FALSE
##    3: Twitter for iPhone        2        22     FALSE
##    4: Twitter for iPhone       48        82     FALSE
##    5: Twitter for iPhone        0         1     FALSE
##   ---                                                
## 2125: Twitter for iPhone        7        39     FALSE
## 2126: Twitter for iPhone        0         2     FALSE
## 2127: Twitter for iPhone        6        22     FALSE
## 2128: Twitter for iPhone        0         3     FALSE
## 2129: Twitter for iPhone        0         0     FALSE
df_top3 <- count(top3, hashtags)
df_top3 <- df_top3[order(df_top3$n, decreasing = TRUE),]
df_top3
##                                                                                                              hashtags
##   1:                                                                                                             <NA>
##   2:                                                                                               ['PfizerBioNTech']
##   3:                                                                               ['PfizerBioNTech', 'CovidVaccine']
##   4:                                                                                                 ['CovidVaccine']
##   5:                                                                                               ['PfizerBiontech']
##  ---                                                                                                                 
## 892:                                                                   ['whereareallthesickpeople', 'PfizerBioNTech']
## 893:                                                                                     ['whitty', 'PfizerBioNTech']
## 894:                                                                              ['WHO', 'PfizerBioNTech', 'Legend']
## 895:                                                 ['Wythenshawe', 'Manchester', 'southmanchester', 'covidvaccine']
## 896: ['\u0648\u0627\u0643\u0633\u0646_\u06a9\u0631\u0648\u0646\u0627', '\u0632\u0646\u062f\u06af\u06cc_\u0645\u0646']
##        n
##   1: 579
##   2: 304
##   3:  35
##   4:  32
##   5:  30
##  ---    
## 892:   1
## 893:   1
## 894:   1
## 895:   1
## 896:   1
tweetcount
##                            source    n
## 33             Twitter for iPhone 2128
## 37                Twitter Web App 1796
## 31            Twitter for Android 1382
## 30                      TweetDeck  347
## 32               Twitter for iPad  173
## 3                          Buffer   43
## 13                      Instagram   43
## 11                 Hootsuite Inc.   30
## 12                          IFTTT   10
## 17                          Nonli    8
## 2                 Blog2Social APP    6
## 14                       LinkedIn    6
## 20                       Sendible    6
## 15       Microsoft Power Platform    5
## 22                     SocialFlow    5
## 1                      24liveblog    4
## 34                Twitter for Mac    4
## 6                         Echobox    3
## 27               Tweetbot for iΟS    3
## 35           Twitter Media Studio    3
## 4                      CoSchedule    2
## 7                    ETRetail.com    2
## 8  Falcon Social Media Management    2
## 9                      GT_Backend    2
## 18                       Paper.li    2
## 25                  Sprout Social    2
## 39                  WordPress.com    2
## 5                        EastMojo    1
## 10         Hocalwire Social Share    1
## 16                     News Users    1
## 19                         Publer    1
## 21                   Socialbakers    1
## 23                 SocialNewsDesk    1
## 24            Sprinklr Publishing    1
## 26                ThreadReaderApp    1
## 28               Tweetbot for Mac    1
## 29        TweetCaster for Android    1
## 36 Twitter Media Studio - LiveCut    1
## 38         UberSocial for Android    1
## 40                           <NA>    1
library(DescTools)
## 
## Attaching package: 'DescTools'
## The following object is masked from 'package:data.table':
## 
##     %like%
NARows <- which(is.na(tweetcount$source))
NARows
## [1] 40
BadTotal <- sum(tweetcount[NARows, "n"])
BadTotal
## [1] 1
tweetcount <- tweetcount[-NARows,]
head(tweetcount)
##                 source    n
## 33  Twitter for iPhone 2128
## 37     Twitter Web App 1796
## 31 Twitter for Android 1382
## 30           TweetDeck  347
## 32    Twitter for iPad  173
## 3               Buffer   43
tweetcount <- rbind(c("No Source", BadTotal), tweetcount)
head(tweetcount)
##                 source    n
## 1            No Source    1
## 33  Twitter for iPhone 2128
## 37     Twitter Web App 1796
## 31 Twitter for Android 1382
## 30           TweetDeck  347
## 32    Twitter for iPad  173
rownames(tweetcount) <- c(1:nrow(tweetcount))
head(tweetcount)
##                source    n
## 1           No Source    1
## 2  Twitter for iPhone 2128
## 3     Twitter Web App 1796
## 4 Twitter for Android 1382
## 5           TweetDeck  347
## 6    Twitter for iPad  173
library(ggplot2)

head(tweetcount, 12)
##                 source    n
## 1            No Source    1
## 2   Twitter for iPhone 2128
## 3      Twitter Web App 1796
## 4  Twitter for Android 1382
## 5            TweetDeck  347
## 6     Twitter for iPad  173
## 7               Buffer   43
## 8            Instagram   43
## 9       Hootsuite Inc.   30
## 10               IFTTT   10
## 11               Nonli    8
## 12     Blog2Social APP    6
str(tweetcount)
## 'data.frame':    40 obs. of  2 variables:
##  $ source: chr  "No Source" "Twitter for iPhone" "Twitter Web App" "Twitter for Android" ...
##  $ n     : chr  "1" "2128" "1796" "1382" ...
tweetcount$n <- as.numeric(tweetcount$n)
str(tweetcount)
## 'data.frame':    40 obs. of  2 variables:
##  $ source: chr  "No Source" "Twitter for iPhone" "Twitter Web App" "Twitter for Android" ...
##  $ n     : num  1 2128 1796 1382 347 ...
ggplot(tweetcount[2:12,], aes(x = reorder(source, -n), y=n)) +
  geom_bar(colour="darkblue", fill="lightblue", stat = "identity") +
  labs(title = "Tweets by Source (Top 12)", x = "Source", y = "Tweet Count") +
  theme(plot.title = element_text(hjust = 0.5))  

As you can see above, a large majority of users who post on Twitters platform are largely Iphone users. Which interestingly is not followed by Android users, but actually the Twitter Web app. In addition, this is interesting in that Android, which a large majority of people around the globe use if they are not Iphone users, has fewer tweets than the Twitter Web App. This begs the question of whether or not more people have moved away from using mobile devices or if Twitter has become a plotform during the pandemic for more generations.

Number Tweets by Year

Now that we have seen the top number of sources used by users on the Twitter platform, it will be interesting to see how many tweets in 2020 and 2021 have been posted about the pandemic and upcoming vaccine. Knowing that certain events took place during 2020 and 2021, it will be interesting to see which one produces the most tweets about the pandemic and anything relating to it in any way. This graph shown below shows us the number of tweets that were tweeted in the years of 2020 and 2021 about COVID-19 and the Pfizer Vaccine and any events the corroleted with the two, like the election.

library(lubridate)
df$year <- year(mdy_hm(df$date))
length(unique(df$year))
## [1] 2
library(scales)
p1 <- ggplot(df, aes(x=year)) + 
  geom_histogram(bins = 2, color="darkblue", fill="lightblue") +
  labs(title = "Histogram of Tweets by Year", x = "Year", y = "Count of Tweets") +
  scale_y_continuous(labels = comma) +
  stat_bin(binwidth = 1, geom = 'text', color='black', aes(label=scales::comma(..count..)), vjust=-0.5)
p1

x_axis_labels <- min(df$year):max(df$year)

p1 <- p1 + scale_x_continuous(labels = x_axis_labels, breaks = x_axis_labels)

Upon inspection of the graph above, we can clearly see that tweets tweeted in 2021 is a 105% increase, clearly showing that more tweeted about the pandemic in regard to the vaccine in 2020. What is intresting is that considering the pandemic occured in 2020 and talks of the vaccine happened mid way through, only 49% of the entire data set is tweets made in 2020.

Tweets by Day of the Week and Year

After knowing the top producing sources that users were tweeting from, finding out which days of the week were the most popular amongst these tweets pandemic and vaccine related could help understand when people are talking about what and when it is trending. This line plot chart tells us the amount of tweets posted related to the pandemic in the years of 2020 and 2021 as well as the what day of the week said tweet was posted.

library(ggplot2)
library(lubridate)
library(dplyr)
library(scales)
library(ggthemes)
library(RColorBrewer)

days_df <- df %>%
  select(date) %>%
  mutate(year = year(mdy_hm(date)),
         dayoftheweek = weekdays(mdy_hm(date), abbreviate = TRUE)) %>%
  group_by(year, dayoftheweek) %>%
  summarise(n = length(date), .groups = 'keep') %>%
  data.frame()
days_df
##    year dayoftheweek   n
## 1  2020          Fri 152
## 2  2020          Mon 292
## 3  2020          Sat 220
## 4  2020          Sun 225
## 5  2020          Thu 325
## 6  2020          Tue 392
## 7  2020          Wed 374
## 8  2021          Fri 811
## 9  2021          Mon 447
## 10 2021          Sat 621
## 11 2021          Sun 461
## 12 2021          Thu 558
## 13 2021          Tue 582
## 14 2021          Wed 572
str(days_df)
## 'data.frame':    14 obs. of  3 variables:
##  $ year        : num  2020 2020 2020 2020 2020 ...
##  $ dayoftheweek: chr  "Fri" "Mon" "Sat" "Sun" ...
##  $ n           : int  152 292 220 225 325 392 374 811 447 621 ...
days_df$year <- as.factor(days_df$year)

day_order <- factor(days_df$dayoftheweek, level=c('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'))
day_order
##  [1] Fri Mon Sat Sun Thu Tue Wed Fri Mon Sat Sun Thu Tue Wed
## Levels: Mon Tue Wed Thu Fri Sat Sun
p4 <- ggplot(days_df, aes(x = day_order, y = n, group=year)) + 
  geom_line(aes(color=year), size=3) + 
  labs(title = "Tweets by Day of the Week and Year", x = "Days of the Week", y = "Tweet Count") +
  theme_light() + 
  theme(plot.title = element_text(hjust = 0.5)) +
  geom_point(shape=21, size=5, color="black", fill="black") +
  scale_y_continuous(labels = comma) +
  scale_color_brewer(palette = "Paired", name = "Year", guide = guide_legend(reverse = TRUE))

p4

Using the above plot, it is clear that the year to an extent is not a major factor when looking at the tweets tweeted throughout the days of the week. However, one thing to note is that Friday in 2020 compared to 2021 are polar opposites in that there was a major spike in 2021 from Thursday to Friday but a decline in 2020. Though this graph does not identify the factors of each tweet, I think that this shows that there is not entirely an ideal day for people to go on Twitter and tweet about the vaccine, however in 2021 is seems that many users favored Friday.

Heatmap

There’s always going to be a day of the week or a time on the social media site like Twitter that more users share to the platform. Knowing the varying hours of the day that users are tweeting on and which day of the week, finding out the most common and Internet activity that is higher among pandemic tweets that are linked to vaccinations will help explain which days of the week in 2020 relative to 2021 people are more likely to tweet about COVID-19 and Pfizer. This heat map gives us a contrast of the two years and the tweets that have been posted.

mylevels <- c('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun')
days_df$dayoftheweek <- factor(days_df$dayoftheweek, levels = mylevels)

breaks <- c(seq(0, max(days_df$n), by=25000))
breaks
## [1] 0
p5 <- ggplot(days_df, aes(x = year, y = dayoftheweek, fill=n)) +
  geom_tile(color="black") +
  geom_text(aes(label=comma(n))) +
  coord_equal(ratio = 1) +
  labs(title = "Heatmap: Tweets by Day of the Week",
       x = "Year",
       y = "Days of the Week", 
       fill = "Tweet Count") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) +
  scale_y_discrete(limits = rev(levels(days_df$dayoftheweek))) +
  scale_fill_continuous(low="white", high="blue", breaks = breaks) +
  guides(fill = guide_legend(reverse = TRUE, override.aes = list(colour="black")))

p5

The above heatmap can provide us with additional information and insights to tweets made by the day of the week and year. While the line plot graph showed similar data, it did not show to the extent of how popular/ intense the internet activity was during those day. This heatmap shows the relative values of the tweets, providing a more capturing experience. Based on the data, the most internet activity happened on Friday in 2021 followed by Saturday. What we can conclude from the data is that compared to 2020, 2021 has immensely more tweets about the pandemic and vaccine.

Tweers by Hour

On many social media platforms like Twitter, Instagram, and Facebook there are going to be an enormous amount of posts from users all over the globe being uploaded during different times of the day. Knowing what sources that users are tweeting from and which day of the week, finding out the hours in which are the most popular amongst the pandemic tweets that are vaccine related could help understand around what time people are most likely to tweet about COVID-19 and the Pfizer vaccine. This line plot tells us the amount of tweets posted related to the pandemic as well as the hour of when these tweets are posted.

library(lubridate)
library(dplyr)
library(scales)
library(ggthemes)
library(ggplot2)
library(ggrepel)

hours_df <- df %>%
  select(date) %>%
  mutate(hour24 = hour(mdy_hm(date))) %>%
  group_by(hour24) %>%
  summarise(n = length(date), .groups = 'keep') %>%
  data.frame()
hours_df
##    hour24   n
## 1       0 160
## 2       1 128
## 3       2 147
## 4       3 130
## 5       4 143
## 6       5 141
## 7       6 156
## 8       7 182
## 9       8 206
## 10      9 251
## 11     10 242
## 12     11 275
## 13     12 304
## 14     13 349
## 15     14 311
## 16     15 365
## 17     16 340
## 18     17 414
## 19     18 382
## 20     19 376
## 21     20 309
## 22     21 272
## 23     22 252
## 24     23 197
str(hours_df)
## 'data.frame':    24 obs. of  2 variables:
##  $ hour24: int  0 1 2 3 4 5 6 7 8 9 ...
##  $ n     : int  160 128 147 130 143 141 156 182 206 251 ...
x_axis_labels = min(hours_df): max(hours_df$hour24)
x_axis_labels
##  [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
hi_lo <- hours_df %>%
  filter(n == min(n) | n == max(n)) %>%
  data.frame()
hi_lo
##   hour24   n
## 1      1 128
## 2     17 414
p3 <- ggplot(hours_df, aes(x = hour24, y = n)) +
  geom_line(color = 'black', size = 1) +
  geom_point(shape = 21, size = 4, color = 'red', fill = 'white') +
  labs(x="Hour", y = "Tweet Count", title = "Tweets by Hour", caption = "Source: Kaggle.com") +
  scale_y_continuous(labels = comma) + 
  theme_light() +
  theme(plot.title = element_text(hjust = 0.5)) +
  scale_x_continuous(labels = x_axis_labels, breaks = x_axis_labels, minor_breaks = NULL)+
  geom_point(data = hi_lo, aes(x = hour24, y = n), shape=21, size=4, fill='red', color='red') +
  geom_label(aes(label = ifelse(n == max(n) | n == min(n), scales::comma(n) , "")),
             box.padding = 1,
             point.padding = 1,
             size=4,
             color= 'Grey50',
             segment.color = 'darkblue')
## Warning: Ignoring unknown parameters: box.padding, point.padding, segment.colour
p3

The line chart above shows the tweet activity based on hours. Based on this chart, the data above holds true to other data collected as the tweet activity is the highest in the evening, which is when many people around the globe get off work. The two notable numbers on this chart show the lowest number of tweets was made around hour 1, or 1:00 AM, while the highest number of tweets were made around hour 17, or 5:00 PM. This gives us insight as to when the most popular time of day is for users to tweet about Covid 19 or the vaccine.

Conclusion

From all of these visualizations, we can learn several things about the top sources, hashtags used, and users locations. By Looking at the nested pie chart of user location, we can strongly infer that many of the locations of users tweeting about the vaccine are not from the UK or Canada, but rather from other places around the wolrd or locations that users on the platform made up. We can also not that there is note that there is not an ideal time during the day of the week to post, however we can say that later in the evening on Fridays was the most popular. Finally, we also leanred that there were more total tweets in 2021 concerning the pandemic and the vaccine than there was during 2020. As we look forward to what else 2021 has to offer in the up coming months, we can use this information to possibly predict the subject of tweet. Most importantly from this data we can concur that all tweets pertaining to the pandemic will not have the same opinion on the matter.

Appendix

summary(df)
##        id              username         userlocation       userdescription   
##  Min.   :1.340e+18   Length:6032        Length:6032        Length:6032       
##  1st Qu.:1.340e+18   Class :character   Class :character   Class :character  
##  Median :1.350e+18   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :1.349e+18                                                           
##  3rd Qu.:1.350e+18                                                           
##  Max.   :1.360e+18                                                           
##  usercreated        userfollowers       userfriends    userfavourites  
##  Length:6032        Min.   :       0   Min.   :    0   Min.   :     0  
##  Class :character   1st Qu.:     111   1st Qu.:  165   1st Qu.:   392  
##  Mode  :character   Median :     485   Median :  463   Median :  2146  
##                     Mean   :   37801   Mean   : 1179   Mean   : 13658  
##                     3rd Qu.:    2131   3rd Qu.: 1253   3rd Qu.: 10611  
##                     Max.   :13714928   Max.   :99129   Max.   :924667  
##  userverified        date               text             hashtags        
##  Mode :logical   Length:6032        Length:6032        Length:6032       
##  FALSE:5442      Class :character   Class :character   Class :character  
##  TRUE :590       Mode  :character   Mode  :character   Mode  :character  
##                                                                          
##                                                                          
##                                                                          
##     source             retweets         favorites        isretweet      
##  Length:6032        Min.   :  0.000   Min.   :   0.000   Mode :logical  
##  Class :character   1st Qu.:  0.000   1st Qu.:   0.000   FALSE:6032     
##  Mode  :character   Median :  0.000   Median :   1.000                  
##                     Mean   :  1.621   Mean   :   9.408                  
##                     3rd Qu.:  1.000   3rd Qu.:   4.000                  
##                     Max.   :678.000   Max.   :2315.000                  
##       year     
##  Min.   :2020  
##  1st Qu.:2020  
##  Median :2021  
##  Mean   :2021  
##  3rd Qu.:2021  
##  Max.   :2021