#Brexit – Twitter analyse in R 1: een verbinding maken & tweets binnenhalen

Welkom op mijn eerste post over Twitter analyse met R! In deze en komende posts ga ik laten zien hoe je met R tweets kan importeren en analyseren. Twitter data is ontzettend interessant omdat het laat zien hoe mensen over iets – bijvoorbeeld een merk of een politiek issue – denken en praten zonder dat je het expliciet hoeft te vragen. Op Twitter dan ook geen politiek correcte antwoorden (verre van…). Als case study gebruik ik tweets over Brexit, omdat ik zelf erg nieuwsgierig was hoe daar op Twitter over gediscussieerd wordt. Mocht je benieuwd zijn naar de resultaten maar interesseert R je totaal niet, lees dan mijn volgende posts, want dan deel ik ook een aantal bevindingen.
Developer account
In deze eerste post ga ik laten zien hoe je verbinding maakt tussen R en Twitter om gemakkelijk en snel tweets binnen te halen en te analyseren. Om een verbinding met Twitter te maken, moet je eerst een Twitter-developer account aanmaken met je ‘normale’ account (met telefoonnummer). Dus registreer je eerst op Twitter als je nog geen account hebt. Om vervolgens je developer account aan te maken, ga je naar https://developer.twitter.com/. Vervolgens klik je op Apply. Afgelopen jaar heeft Twitter zijn regels wat betreft developer accounts aangescherpt, dus je krijgt eerst een aantal vragen over wat je met je account wil doen. Vul deze netjes in, maar ikzelf kreeg al binnen een minuut een bevestigingsmail, dus ik betwijfel of de screening heel grondig is. Zodra je de mail hebt ontvangen, kun je gebruik maken van je developer account.
App aanmaken
Om een verbinding te maken tussen R en Twitter, moet je eerst een app aanmaken. Dat klinkt ingewikkelder dan het is – je hebt dit binnen vijf minuten gefikst. Log in met je developers account en ga rechtsboven naar Apps.

Klik op Create an App om een app te maken. Zie hieronder wat ik heb ingevuld: alleen de naam, beschrijvingen en de url zijn noodzakelijk. Voor de url kun je gewoon je Twitter url gebruiken, of een andere url als je die hebt. Klik dan op Create. Als alles gelukt is, heb je een app gemaakt en zal deze verschijnen onder Apps in het menu rechtsboven.
Keys en tokens
Om in R verbinding te maken met Twitter, heb je een aantal toegangscodes nodig die je in je app kan vinden en vervolgens in R kan invullen. Om deze te bekijken, ga je naar Details van je app in het app menu.
Vervolgens kom je op de pagina van je app. Ga naar de pagina Keys en Tokens (boven in het menu) en voilà, daar staan je codes om via R in Twitter te kunnen.

Rtweet/twitteR
In R heb je een package nodig om te kunnen communiceren met Twitter. Ik ben zelf bekend met twee pakketten: TwitteR en Rtweet. Ik heb zelf TwitteR gebruikt om tweets te importeren, maar in mijn ervaring is Rtweet erg handig om informatie over Twitter-gebruikers binnen te halen. Voor nu gebruik ik alleen TwitteR. Installeer en laad het pakket dus in Twitter als je hem nog niet hebt.
library(twitteR)
Verbinding maken
Vervolgens vul je de codes zoals van het voorbeeld hierboven in en maak je verbinding.
#Vul hier je keys en tokens in consumer_key <- "***" consumer_secret<- "***" access_token <- "***" access_secret <- "***" #verbinding met Twitter setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
Als het goed is, is de verbinding nu tot stand gebracht en je kunt Tweets binnenhalen. Dit kun je nog even testen door een zoekopdracht te doen.
#zoek puppys searchTwitter("puppy", n=20)
Je krijgt een mix van de twintig meest recente en meest populaire Tweets waar het woord ‘puppy’ in vermeld wordt. Is dat even leuk.
Tweets binnenhalen
Als case study wilde ik onderzoeken hoe Nederlanders op Twitter over Brexit denken. Het was ten tijde van dit onderzoekje een heftige week in de Brexit onderhandelingen, waarin Theresa Mays plan voor een deal werd afgewezen door het Britse Lagerhuis. Ook in Nederland was Brexit continu in de media, en ik was daarom benieuwd wat Twitterend Nederland ervan vindt. Met onderstaande query heb ik alle tweets over Brexit opgehaald.
#zoek nederlandstalige brexit tweets tw <- searchTwitter("brexit", n = 40000, lang = "nl", since = "2019-01-09", until = "2019-01-17")
Een aantal opmerkingen bij deze query: ten eerste, dit is een flinke opdracht dus het kan even duren. Twitter stelt beperkingen aan de hoeveelheid data die je binnen een bepaalde tijd binnen kan halen, dus voor een grote opdracht heb je echt even tijd nodig. Heb je wel wat beters te doen, dan kun je het argument n lager instellen, dit is het maximum aantal dat R importeert. Ten tweede, houd er rekening mee dat je via de gratis api van Twitter niet meer dan 7 dagen terug kan gaan. Dus als je deze query opnieuw zou uitvoeren, doet hij het waarschijnlijk niet. Ik heb zelf de query om die reden twee keer uitgevoerd (nog een keer op de 19e) om nog wat extra dagen aan mijn dataset toe te voegen. Ten derde, ik heb de taal nu ingesteld op Nederlands, maar daar valt Vlaams ook onder. Je kan ook een locatie instellen op basis van coördinaten en een omtrek met het argument geocode, maar dat leek me niet handig aangezien Nederland geen cirkel is. Dus er zitten ook Vlaamse tweets in mijn dataset.
Zodra het importeren van deze tweets gelukt is, heb je een list met Tweets. Om hiermee aan de gang te gaan, moet je ze eerst nog even omzetten naar een data frame. Daar is een speciale functie voor in TwitteR: twListToDF().
#omzetten naar df brexittotal <- twListToDF(tw)
Dan krijg je een overzichtelijke dataframe met o.a. de tekst van de tweet, de naam van de Twitteraar, het aantal retweets en de datum en tijd van de tweet. Nadat ik mijn twee datasets (van 17 en 19 januari) heb samengevoegd, kom ik uit op een totaal van 29739 tweets met het woord Brexit.
Ik hoop dat deze post nuttig was. Als je opmerkingen, vragen of tips voor me hebt, hoor ik het graag! Je kan me mailen op gibbon@datagibbon.nl. In mijn volgende post ga ik deze data verkennen en een eerste visualisatie maken.