Selecting a time span when Antisemitism was High

This document will walk you through the data preparation and then will present visualisations.

Loading necessary packages

library(dplyr)
library(stringr)
library(xts)
library(ggplot2)
library(reshape2)
library(data.table)
library(hrbrthemes)
library(gcookbook)

rm(list = ls())

Loading Complete dataset

completedataset <- fread("/Volumes/My Book Thunderbolt Duo/CST/Work/4)CompleteDataset/big.dataset.complete.dataset.raw.csv", stringsAsFactors = F)

We have 2677085 tweets in total. When we remove duplicates from RTs it goes down to ~1.7 million. But as we decided to do this in java, I’m working with raw dataset here hence the size is around 2.7 million.

Here is a summary of the raw dataset we have.

str(completedataset)
## Classes 'data.table' and 'data.frame':   2677085 obs. of  49 variables:
##  $ V1                            : chr  "1" "2" "3" "4" ...
##  $ X                             : int  5 9 10 27 38 41 44 48 49 56 ...
##  $ tweet.id.str                  : num  6.04e+17 6.04e+17 6.04e+17 6.04e+17 6.04e+17 ...
##  $ tweet.text.str                : chr  "RT @RobPulseNews: #Russia's #Nazi's fighting in #Ukraine held a ceremony.\nNoticeably, Russian FSB agent Yulia "| __truncated__ "WW2's Red Sands sea forts built to protect Kent from Nazi's... \nhttp://t.co/bkXZPO3IIs | https://t.co/NiBh6tzG"| __truncated__ "RT @RobPulseNews: Where Yulia Kharlamova goes Alexei Milchakov, a Russia|n #GRU soldier; #Nazi; &amp; puppy tor"| __truncated__ "Hitler’s Inner Circle: The 10 Most Powerful Men in Nazi Germany - http://t.co/ILATKyg6TK http://t.co/owL5sBbvbB" ...
##  $ tweet.time.str                : chr  "Fri May 29 13:00:19 +0000 2015" "Fri May 29 13:00:24 +0000 2015" "Fri May 29 13:00:25 +0000 2015" "Fri May 29 13:01:20 +0000 2015" ...
##  $ timestamp.str                 : num  1.43e+12 1.43e+12 1.43e+12 1.43e+12 1.43e+12 ...
##  $ user.id.str                   : num  1.18e+09 2.98e+09 1.18e+09 2.45e+08 8.25e+08 ...
##  $ user.handle.str               : chr  "CKohutS" "berserk_news" "CKohutS" "WarHistoryOL" ...
##  $ user.name.str                 : chr  "ChristineK" "Berserk News" "ChristineK" "War History Online" ...
##  $ user.verified                 : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ user.followers                : int  1464 334 1464 8978 517 18 233 1280 2029 795 ...
##  $ user.following                : int  1148 10 1148 1041 44 189 165 840 2220 1995 ...
##  $ user.status.count             : int  48035 113237 48036 26249 4444 243 1195 29264 42665 1971 ...
##  $ user.description.str          : chr  "RT's are for interest, not necessarily endorsement. https://www.youtube.com/watch?v=OGpidW9finw" "Bringing the latest news from all over the web." "RT's are for interest, not necessarily endorsement. https://www.youtube.com/watch?v=OGpidW9finw" "War History Online, THE Place for Military History, News and Views!" ...
##  $ user.location.str             : chr  "" "UK" "" "USA" ...
##  $ user.timezone                 : chr  "London" NA "London" "London" ...
##  $ retweeted.id.str              : num  6.04e+17 NA 6.04e+17 NA NA ...
##  $ retweeted.text.str            : chr  "#Russia's #Nazi's fighting in #Ukraine held a ceremony.\nNoticeably, Russian FSB agent Yulia Kharlamova was the"| __truncated__ NA "Where Yulia Kharlamova goes Alexei Milchakov, a Russia|n #GRU soldier; #Nazi; &amp; puppy torturer, is never fa"| __truncated__ NA ...
##  $ retweeted.time.str            : chr  "Fri May 29 11:35:41 +0000 2015" NA "Fri May 29 11:53:14 +0000 2015" NA ...
##  $ retweeted.favorite.count      : int  3 NA 3 NA NA 2 NA 1 NA NA ...
##  $ retweeted.retweet.count       : int  17 NA 9 NA NA 2 NA 1 NA NA ...
##  $ retweeted.user.id.str         : num  2.25e+08 NA 2.25e+08 NA NA ...
##  $ retweeted.user.handle.str     : chr  "RobPulseNews" NA "RobPulseNews" NA ...
##  $ retweeted.user.name.str       : chr  "Silver Surfer" NA "Silver Surfer" NA ...
##  $ retweeted.user.verified       : logi  FALSE NA FALSE NA NA TRUE ...
##  $ retweeted.user.followers      : int  7930 NA 7930 NA NA 583565 NA 291 NA NA ...
##  $ retweeted.user.following      : int  326 NA 326 NA NA 221 NA 343 NA NA ...
##  $ retweeted.user.status.count   : int  32448 NA 32448 NA NA 200571 NA 6610 NA NA ...
##  $ retweeted.user.description.str: chr  "Investigative journalist. MSc I.T. #journalism | #analyst | #media #law | #SpecialWar |" NA "Investigative journalist. MSc I.T. #journalism | #analyst | #media #law | #SpecialWar |" NA ...
##  $ retweeted.user.location.str   : chr  "Miami, London" NA "Miami, London" NA ...
##  $ retweeted.user.timezone       : chr  "London" NA "London" NA ...
##  $ quoted.id.str                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ quoted.text.str               : chr  NA NA NA NA ...
##  $ quoted.time.str               : chr  NA NA NA NA ...
##  $ quoted.favorite.count         : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ quoted.retweet.count          : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ quoted.user.id.str            : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ quoted.user.handle.str        : chr  NA NA NA NA ...
##  $ quoted.user.name.str          : chr  NA NA NA NA ...
##  $ quoted.user.verified          : logi  NA NA NA NA NA NA ...
##  $ quoted.user.followers         : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ quoted.user.following         : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ quoted.user.status.count      : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ quoted.user.description.str   : chr  NA NA NA NA ...
##  $ quoted.user.location.str      : chr  NA NA NA NA ...
##  $ quoted.user.timezone          : chr  NA NA NA NA ...
##  $ in.reply.to.status.id.str     : num  NA NA NA NA NA ...
##  $ in.reply.to.user.id.str       : num  NA NA NA NA NA ...
##  $ in.reply.to.screen.name       : chr  NA NA NA NA ...
##  - attr(*, ".internal.selfref")=<externalptr>

Tinkering with the dataset

I realised we have a extremely small (20 minutes of collection) data from May 2015, only 27 tweets. Continuous data collection was started On October, 2015. If we exclude those tweets from May 2015, it will be better for visualisation purposes (5 months gap without any tweets causes an unnecessary squeeze in the x axis).

Removing first 27 tweets from dataset.

completedataset <- completedataset[28:2677085,]

Enter Pattern

Here, I’m importing hate pattern we discussed and printing it.

jewish.hate <- read.csv("/Users/Macbook/Desktop/hate.jewish.csv", stringsAsFactors = F)
jewish.hate <- as.vector(tolower(jewish.hate$hateful.terms))
jewish.hate
##  [1] "beanie"               "big nose"             " brew"               
##  [4] "christ killer"        "cliptip"              "gargamel"            
##  [7] "half-dick"            "hebro"                "jewbacca"            
## [10] "jewbrew"              "jewpidity"            "kike"                
## [13] "koshie"               "nickel nose"          "pinocchio"           
## [16] "porky"                "sheister"             "schnozzel"           
## [19] "yahoodi"              "yiddiot"              "zio "                
## [22] "zionazi"              "fucking zionist"      "fuck zionist"        
## [25] "zionist bastard"      "bastard zionist"      "zionist cunt"        
## [28] "zionist asshole"      "filthy zionist"       "zionist filth"       
## [31] "asshole zionist"      "zionist asshole"      "zionist motherfucker"
## [34] "fucking jew"          "fuck jew"             "jew bastard"         
## [37] "bastard jew"          "jew cunt"             "jew asshole"         
## [40] "filthy jew"           "jew filth"            "asshole jew"         
## [43] "jew asshole"          "jew motherfucker"     "fucking jewish"      
## [46] "fuck jewish"          "jewish bastard"       "bastard jewish"      
## [49] "jewish cunt"          "jewish asshole"       "filthy jewish"       
## [52] "jewish filth"         "asshole jewish"       "jewish asshole"      
## [55] "jewish motherfucker"  "israhell"             "holohaux"            
## [58] "zios"

Pattern Matching

Below code matches the pattern we described above witht the tweet texts across the dataset, then creates a new column called matched.slur. The new column will display the words in the pattern which matched with the tweet text.

completedataset$matched.slur <- completedataset$tweet.text.str %>%  # to a new column with the name temp, take tweet.text.str
     tolower %>%                                            # convert everything to lowercase
     str_extract_all(.,paste(jewish.hate,collapse="|")) %>% # pattern match with every word in the slur.edited list
     sapply(.,paste0,collapse=',')   %>%               # write matched words into the new column seperated by comma
     replace(.,.=="",NA)

More Tinkering

The time value from Twitter’s API is not in a R-friendly format. So here I’m converting time value to a format which is understandable for R.

str(completedataset$tweet.time.str) # time column is character, lets fix it
##  chr [1:2677058] "Fri Oct 16 13:19:03 +0000 2015" ...
completedataset$tweet.time.posix <-as.POSIXct(completedataset$tweet.time.str, format= "%a %b %d %H:%M:%S %z %Y", usetz= FALSE)# time value was char, converting it to posixct
str(completedataset$tweet.time.posix) # date column is posixct
##  POSIXct[1:2677058], format: "2015-10-16 14:19:03" "2015-10-16 14:19:06" ...

Selecting anly necessary columns, namely the tweet text, matched slur and tweet time and dumping them into a new data frame called ‘totaldata’.

totaldata <- completedataset[28:2677085,c(4,50,51)]
head(totaldata)
##                                                                                                                                    tweet.text.str
## 1:   RT @Yair_Rosenberg: Jewish holy site is torched by Palestinians. The Washington Post and CNN offer a tale of two headlines: http://t.co/sYD…
## 2:              Palestinians set fire to Jewish shrine; Israeli soldier stabbed - Reuters: Reuters… http://t.co/XgCbNDtORi http://t.co/qKScePDJui
## 3:                     @DefiantLionUK so it's ok for you to call me a supporter of evil but not for me to call you Nazi? Double standards anyone?
## 4:    If you think being anti Israel means being anti Jewish listen to this Jewish man condemn Israels apartheid regime... http://t.co/oeypcIeQJR
## 5: RT @AviMayer: ""Catches fire""? A Palestinian mob set fire to a Jewish holy site this morning. This is how @CNN reported it. http://t.co/sVe8…
## 6:   RT @dumisani6: #Palestinians set fire to holy Jewish, Christian site in Israel (Joseph's tomb). @Black4Palestine @Dreamdefenders http://t.c…
##    matched.slur    tweet.time.posix
## 1:           NA 2015-10-16 14:23:08
## 2:           NA 2015-10-16 14:23:19
## 3:           NA 2015-10-16 14:23:46
## 4:           NA 2015-10-16 14:23:49
## 5:           NA 2015-10-16 14:23:56
## 6:           NA 2015-10-16 14:24:01

Plots

Plotting complete dataset.

First cronverting the totaldata dataset to time series.

ts <- xts(x = rep(1,times=nrow(totaldata)), order.by = totaldata$tweet.time.posix)
ts.sum <- apply.daily(ts,sum)
ts.sum.df <- data.frame(date=index(ts.sum), coredata(ts.sum))
colnames(ts.sum.df)=c('date','sum')

The timeseries line graph of complete dataset (daily)

a <- ggplot(ts.sum.df)+geom_line(aes(x=date,y=sum))+
     labs( x= 'Time (Daily)', y= "Tweet Count",
          title = "Line Graph of Tweet Counts For the Complete Dataset ", 
          subtitle = "Graph 1", 
          caption = "Social Data Lab") +
               theme_ipsum_rc()
a
## Warning: Removed 1 rows containing missing values (geom_path).

Looks like the highest peak was around Livingstone event (28th of April). There is also another peak around first week of July but not sure what it is.

Plotting only hate

First creating a dataset called ‘slur’ which only contains the tweets which matched woth our pattern.

slur <- completedataset[!is.na(completedataset$matched.slur),c(4,50,51)]
head(slur,15)
##                                                                                                                                     tweet.text.str
##  1:                                                                                                      Hebron.. Sounds like a Jewish transformer
##  2: RT @eddie1971nyc: Ok lets decipher this picture:\n\nNon Semite Land Squatting Anti-Semite Zio aiming at a Semitic Arab Palestinian girl http:…
##  3:    @FHawksworth @Defenderhaaretz @basemn63 @rk70534 Indigenous Jews of 1000 yrs return to Hebron. You say ""settlers!"" http://t.co/EzeoLYQwYG
##  4:                                                                        RT @recfab: Block/report @\\kikesburg for anti-Semitism and harassment.
##  5: RT @eddie1971nyc: Ok lets decipher this picture:\n\nNon Semite Land Squatting Anti-Semite Zio aiming at a Semitic Arab Palestinian girl http:…
##  6:                                                                                                           @JewyMarie \n\nFilthy fucking Jew's.
##  7:   RT @JoeDouglas1: ...Genocide Canaanites, David to murder Uriah, Jews had Romans crucify Jesus, zionazis to murder Palestinians. Darkness fl…
##  8:                                         In 1994, a Jewish settler shot dead 29 Palestinians in Hebron’s Ibrahimi Mosque http://t.co/0HWJmQbVIn
##  9:                    RT @FriendsofAlAqsa: In 1994, a Jewish settler shot dead 29 Palestinians in Hebron’s Ibrahimi Mosque http://t.co/0HWJmQbVIn
## 10:     @senorawesomeguy @MohammedWasAJew Your unfunny jew humour is boring my followers to tears. You need some personality lessons in anti-kike.
## 11:    @DickMackintosh @michael_taggart Don't know what you guys are on about but, ""Fuck Israel"" or ""Zionists"" is certainly not ""Fuck Jews"".
## 12:                                                                                This is torture, fucking Jewish pricks  https://t.co/nDixBHE56T
## 13:        @mypoint111 @RobWvurob @NAInfidels @X123Alpha @EliMLian I like your passive aggressive attitude... fuck Jews,  then ""have feelings!"".
## 14:                                        @NeoNaziRaven @FotdopplerSS @BloodandSoilwn The label neo-nazi, nazi... yeah, they're kike definitions.
## 15:          2 attempts to stab Jews in Israel this morning (Hebron and Jerusalem) but resulting in the terrorists being shot. Another bloody day.
##     matched.slur    tweet.time.posix
##  1:        hebro 2015-10-16 14:31:31
##  2:         zio  2015-10-16 15:20:10
##  3:        hebro 2015-10-16 15:51:24
##  4:         kike 2015-10-16 17:18:58
##  5:         zio  2015-10-16 17:23:52
##  6:  fucking jew 2015-10-16 17:24:27
##  7:      zionazi 2015-10-16 17:45:18
##  8:        hebro 2015-10-16 18:20:30
##  9:        hebro 2015-10-16 18:34:20
## 10:         kike 2015-10-16 19:19:02
## 11:     fuck jew 2015-10-16 19:59:15
## 12:  fucking jew 2015-10-17 00:35:28
## 13:     fuck jew 2015-10-17 01:17:33
## 14:         kike 2015-10-17 07:29:26
## 15:        hebro 2015-10-17 07:46:44

Creating Time series dataset for hateful terms and grouping daily

ts.hate <- xts(x = rep(1,times=nrow(slur)), order.by = slur$tweet.time.posix)
ts.sum.hate <- apply.daily(ts.hate,sum)
ts.sum.df.hate <- data.frame(date=index(ts.sum.hate), coredata(ts.sum.hate))
colnames(ts.sum.df.hate)=c('date','sum')

The timeseries line graph of Hateful subset (daily)

b <- ggplot(ts.sum.df.hate)+geom_line(aes(x=date,y=sum))+
     labs( x= 'Time (Daily)', y= "Tweet Count",
          title = "Line Graph of Tweet Counts For the Tweets \nthat Matched with Antisemitic Hate Pattern ", 
          subtitle = "Graph 2", 
          caption = "Social Data Lab") +
               theme_ipsum_rc()
b

There is a peak around mid-March, I will detail this below.

Plotting complete dataset and hate on the same chart. As hateful terms are rare when compared to all tweets, this comparison does not makes much sense but gives a sense for how small hateful content is.

 c <- ggplot() + 
          geom_line(data = ts.sum.df, aes(x = date, y = sum, color = "no hate")) +
          geom_line(data = ts.sum.df.hate, aes(x =date, y = sum, color = "hate"))  +
          labs( x= 'Time (Daily)', y= "Tweet Count",
               title = " Tweet Counts of Complete Data vs Hateful Tweets Subset ", 
               subtitle = "Graph 3", 
               caption = "Social Data Lab") +
                    theme_ipsum_rc()
c
## Warning: Removed 1 rows containing missing values (geom_path).

Now, I’ve eyeballed the peak in the hateful subset. The highest peak is on 15.03.2016. It’s more than 200 hateful terms that day. As it’s pretty interesting.

slur[slur$tweet.time.posix >= "2016-03-15" & slur$tweet.time.posix <= "2016-03-16", ]
##                                                                                                                                        tweet.text.str
##   1: RT @WikiGuido: Labour's Vicki Kirby on Jews ""with big noses"" and how ""Jews... slaughter the oppressed""  https://t.co/wAN11xgjzR https://t.c…
##   2: RT @CorbynSnap: All she says is Jews have big noses &amp; Hitler is their teacher. Loads of my friends say this stuff-don't everyones'? https:/…
##   3:                                                                         @simon3862 I'm sure she's lovely providing you're not a 'big nosed Jew'.
##   4: RT @WikiGuido: Labour's Vicki Kirby on Jews ""with big noses"" and how ""Jews... slaughter the oppressed""  https://t.co/wAN11xgjzR https://t.c…
##   5:                                                                          @eddie1971nyc and then you post stuff showing Jews with big noses!! LOL
##  ---                                                                                                                                                 
## 203:     RT @HuwGruffydd: Labour activist who said ‘Jews have big noses’ suspended by party  but what about all the other Labour anti-Semites? https…
## 204:     RT @HuwGruffydd: Labour activist who said ‘Jews have big noses’ suspended by party  but what about all the other Labour anti-Semites? https…
## 205:                    RT @EylonALevy: No, @SkyNews, ""Jews have big noses"" is not an ""anti-Israeli"" comment. #VickiKirby https://t.co/fSl8Vggxxs
## 206:           @UKLabour suspended #activist who tweeted #Jews have 'big noses' after MPs criticise inaction | via @Telegraph https://t.co/I5zXj4DvOB
## 207:           RT @CDP1882: This is our new LGBT+ Liberation officer at Edinburgh University! Ada also likes to call jews ""zios."" Disgusting. @Nero
##      matched.slur    tweet.time.posix
##   1:     big nose 2016-03-15 00:01:00
##   2:     big nose 2016-03-15 00:09:30
##   3:     big nose 2016-03-15 00:19:04
##   4:     big nose 2016-03-15 00:43:37
##   5:     big nose 2016-03-15 01:19:50
##  ---                                 
## 203:     big nose 2016-03-15 22:54:31
## 204:     big nose 2016-03-15 22:57:20
## 205:     big nose 2016-03-15 23:15:14
## 206:     big nose 2016-03-15 23:54:02
## 207:         zios 2016-03-15 23:59:20

As you can see these are mostly counter speech rather than hate. Same problem have been experiencing with this dataset.

So, I’ve removed the hateful term ‘big nose’ from the pattern.

I’ve also done the same thing with the word ‘brew’ as it generally referred to the verb ‘brew’ (brewing or brewer) rahter than antagonistic abbreviation of the word ‘hebrew’.

jewish.hate.edited <- jewish.hate[!jewish.hate %in% c('big nose', ' brew')]
jewish.hate.edited
##  [1] "beanie"               "christ killer"        "cliptip"             
##  [4] "gargamel"             "half-dick"            "hebro"               
##  [7] "jewbacca"             "jewbrew"              "jewpidity"           
## [10] "kike"                 "koshie"               "nickel nose"         
## [13] "pinocchio"            "porky"                "sheister"            
## [16] "schnozzel"            "yahoodi"              "yiddiot"             
## [19] "zio "                 "zionazi"              "fucking zionist"     
## [22] "fuck zionist"         "zionist bastard"      "bastard zionist"     
## [25] "zionist cunt"         "zionist asshole"      "filthy zionist"      
## [28] "zionist filth"        "asshole zionist"      "zionist asshole"     
## [31] "zionist motherfucker" "fucking jew"          "fuck jew"            
## [34] "jew bastard"          "bastard jew"          "jew cunt"            
## [37] "jew asshole"          "filthy jew"           "jew filth"           
## [40] "asshole jew"          "jew asshole"          "jew motherfucker"    
## [43] "fucking jewish"       "fuck jewish"          "jewish bastard"      
## [46] "bastard jewish"       "jewish cunt"          "jewish asshole"      
## [49] "filthy jewish"        "jewish filth"         "asshole jewish"      
## [52] "jewish asshole"       "jewish motherfucker"  "israhell"            
## [55] "holohaux"             "zios"

After remowing the two terms from the pattern, I’ve excluded the tweets matched with those terms from the hateful subset.

slur.edited <- slur[grep(paste(jewish.hate.edited,collapse="|"), slur$matched.slur),]

New hate dataset consists of 11449 tweets. Now plotting this dataset

ts.hate.edited <- xts(x = rep(1,times=nrow(slur.edited)), order.by = slur.edited$tweet.time.posix)
ts.sum.hate.edited <- apply.daily(ts.hate.edited,sum)
ts.sum.df.hate.edited <- data.frame(date=index(ts.sum.hate.edited), coredata(ts.sum.hate.edited))
colnames(ts.sum.df.hate.edited)=c('date','sum')
d <- ggplot(ts.sum.df.hate.edited) + geom_line (aes(x=date,y=sum))+
     labs( x= 'Time (Daily)', y= "Tweet Count",
          title = "Line Graph of Tweet Counts For the Tweets \nthat Matched with Edited Antisemitic Hate Pattern ", 
       subtitle = "Graph 4", 
       caption = "Social Data Lab") +
     theme_ipsum_rc()

d

Now, it has become more complicated. We clearly see more hate more hate after July 2016. The peak in March 15 is disappeared.

I also want to see the data aggregated weekly.

ts.hate.edited <- xts(x = rep(1,times=nrow(slur.edited)), order.by = slur.edited$tweet.time.posix)
ts.sum.hate.edited.weekly <- apply.weekly(ts.hate.edited,sum)
ts.sum.df.hate.edited.weekly <- data.frame(date=index(ts.sum.hate.edited.weekly), coredata(ts.sum.hate.edited.weekly))
colnames(ts.sum.df.hate.edited.weekly)=c('date','sum')



e <- ggplot(ts.sum.df.hate.edited.weekly) + geom_line (aes(x=date,y=sum))+
     labs( x= 'Time (Weekly)', y= "Tweet Count",
          title = "Line Graph of Tweet Counts For the Tweets \nthat Matched with edited Antisemitic Hate Pattern ", 
       subtitle = "Graph 5", 
       caption = "Social Data Lab") +
     theme_ipsum_rc()

e

To observe the peaks, I’m sorting the weeks with most hateful tweets below.

head (arrange(ts.sum.df.hate.edited.weekly, desc(sum)), 20)
##                   date sum
## 1  2016-07-04 00:52:44 582
## 2  2016-05-02 00:58:24 487
## 3  2016-08-08 00:56:38 446
## 4  2016-07-31 23:38:07 434
## 5  2016-08-29 00:55:27 428
## 6  2016-08-22 00:46:14 355
## 7  2016-04-18 00:44:03 334
## 8  2016-05-09 00:07:02 324
## 9  2016-09-12 00:26:32 319
## 10 2016-07-17 23:59:06 278
## 11 2016-08-14 23:27:03 273
## 12 2016-05-16 00:12:36 267
## 13 2016-09-19 00:10:55 266
## 14 2015-11-08 22:53:39 259
## 15 2016-10-02 21:55:17 245
## 16 2015-11-01 23:49:38 241
## 17 2016-07-10 23:06:50 231
## 18 2016-07-24 23:58:18 231
## 19 2016-03-20 21:01:57 229
## 20 2016-02-21 23:37:03 224

This data suggests that the peak of the number of hateful tweets (582) was on the week ending 4th of July, 2016. We can use that week.

Alternatively, 2 consequitive weeks, namely the ones ending 31st of July, 2016 and 8th of August, 2016, contain many hateful tweets (434 and 446 respectively). We can use those two weeks as well.

Below I’m printing the data from those weeks.

The peak week

slur.edited [slur.edited$tweet.time.posix >= "2016-06-28" & slur.edited$tweet.time.posix <= "2016-07-04", ]
##                                                                                                                                    tweet.text.str
##   1: RT @Halberstram_FTN: Anthony Bourdain and some other shitty fucking jew casually discuss a little White genocide over their meal:  https://…
##   2:           @EustaceFash @ArieFriedman I know it's a republican when they call me Jew boy I know it's a democrat when they call me Jew bastard
##   3:                                            RT @yfglgend: Told em I was Jewish and they let me keep my beanie on lmao https://t.co/NZa4txzO27
##   4:                                            RT @yfglgend: Told em I was Jewish and they let me keep my beanie on lmao https://t.co/NZa4txzO27
##   5:                                            RT @yfglgend: Told em I was Jewish and they let me keep my beanie on lmao https://t.co/NZa4txzO27
##  ---                                                                                                                                             
## 544:                                                      TBT to when Hillary called someone a ""fucking Jew bastard""\n\nhttps://t.co/gCkOmNqEME
## 545:                                   RT @PizzaPartyBen: TBT to when Hillary called someone a ""fucking Jew bastard""\n\nhttps://t.co/gCkOmNqEME
## 546:                               RT @brilliantblue_: it's almost like there's no risk in being a proud kike. so brave.  https://t.co/pA6zcu0EZR
## 547:            @JaneGrover1 They are JEWS and there are many groups of Jews that are Anti Zionist, much as you Zio scum would wish there weren't
## 548: is it a condition of being a Zio that u have 2b a boring illiterate fucker? clearly @Ask_Netanyahu isnt paying enuff https://t.co/9Lw6d1f0YB
##      matched.slur    tweet.time.posix
##   1:  fucking jew 2016-06-28 01:51:56
##   2:  jew bastard 2016-06-28 04:36:29
##   3:       beanie 2016-06-28 05:23:33
##   4:       beanie 2016-06-28 05:30:51
##   5:       beanie 2016-06-28 05:30:56
##  ---                                 
## 544:  fucking jew 2016-07-03 21:46:49
## 545:  fucking jew 2016-07-03 21:49:47
## 546:         kike 2016-07-03 22:04:27
## 547:         zio  2016-07-03 22:57:12
## 548:         zio  2016-07-03 23:54:23

The important two weeks

slur.edited [slur.edited$tweet.time.posix >= "2016-07-24" & slur.edited$tweet.time.posix <= "2016-08-08", ]
##                                                                                                                                                tweet.text.str
##   1:                                                        RT @yfglgend: Told em I was Jewish and they let me keep my beanie on lmao https://t.co/NZa4txzO27
##   2:                                                        RT @yfglgend: Told em I was Jewish and they let me keep my beanie on lmao https://t.co/NZa4txzO27
##   3:                                                        RT @yfglgend: Told em I was Jewish and they let me keep my beanie on lmao https://t.co/NZa4txzO27
##   4:                beware of @garyspedding he has penned article in Zio @haaretzcom accusing Pal solidarity movement of antiSemitism https://t.co/gNtttkJP4p
##   5:                                                        RT @yfglgend: Told em I was Jewish and they let me keep my beanie on lmao https://t.co/NZa4txzO27
##  ---                                                                                                                                                         
## 896:                                RT @cdaargh: No, it isn't. BTW, Chakrabarti Report &amp; Corbyn agree Zio is an antisemitic slur. https://t.co/p7y1uc28tW
## 897:                                                             RT @o7463: Fucking Jews in the holocaust would turn this shite down  https://t.co/ySLmXlBSpJ
## 898:                                RT @cdaargh: No, it isn't. BTW, Chakrabarti Report &amp; Corbyn agree Zio is an antisemitic slur. https://t.co/p7y1uc28tW
## 899:             RT @MLKstudios: @Smeggypants @theIMEU The difference is Jews declared themselves the enemy of Germany. The Pals were invaded by ZioNazis ag…
## 900: RT @SJRTooting: Palestinians &amp; Arabs gave Israel entity everything they wanted, 80% of Palestinian land &amp;water &amp; still Zio want more https:…
##      matched.slur    tweet.time.posix
##   1:       beanie 2016-07-24 00:14:21
##   2:       beanie 2016-07-24 00:46:04
##   3:       beanie 2016-07-24 02:46:24
##   4:         zio  2016-07-24 04:55:10
##   5:       beanie 2016-07-24 05:18:23
##  ---                                 
## 896:         zio  2016-08-07 20:51:20
## 897:  fucking jew 2016-08-07 20:52:15
## 898:         zio  2016-08-07 20:58:14
## 899:      zionazi 2016-08-07 20:59:48
## 900:         zio  2016-08-07 22:32:34

Now, the question is which week will we chose?