22.02.2021
Erhalten Sie Twitter-Daten mit R und Tableau
Während der diesjährigen Tableau-Konferenz 2020 habe ich eine Visualisierung mit dem Titel veröffentlicht #DATA20 PRO MINUTE wo ich minutenweise gezählte Tweets mit dem Hashtag #data20 visualisiert habe. Dazu habe ich R verwendet, um die Daten von Twitter zu sammeln. Ich dachte, andere könnten dies nützlich finden, um ihre eigenen Tweets, Hashtags oder andere Personen und Themen zu verfolgen. Deshalb finden Sie hier einen kurzen Weblog-Beitrag darüber, wie Sie diese Daten abrufen und in Tableau integrieren können.
Initiieren Sie den Code
Um diesen Code verwenden zu können, benötigen Sie ein Twitter-Deal with Richten Sie hier eine Twitter-Entwickler-App (kostenlos) ein. Nachdem Sie eine App erstellt haben, erhalten Sie einen API-Schlüssel, einen API-Geheimschlüssel und ein Bearer-Token. Wir benötigen diese drei, um den Code auszuführen, der die Daten herunterlädt. Hinweis: Scrollen Sie zum Ende dieses Blogbeitrags, wenn Sie den gesamten Code auf einmal kopieren und einfügen möchten.
## Allgemeine Informationen vignette(„auth“, bundle = „rtweet“) ## Entwicklerversion von rtweet von Github installieren remotes::install_github(„ropensci/rtweet“) ## httpuv installieren, falls noch nicht geschehen if (!requireNamespace(„httpuv „, quietly = TRUE)) { set up.packages(„httpuv“) } ##Diese Pakete installieren set up.packages(„rtweet“, dependencies=TRUE) set up.packages(„jsonlite“) set up.packages(„stringr“) Bibliothek(jsonlite) Bibliothek(rtweet) ## Title der Twitter-App und API-Einstellungen. app_name <- „(Ihr Twitter-App-Title)“ Consumer_key <- „(Ihr Shopper-Schlüssel)“ Consumer_secret <- „(Ihr Shopper-Geheimnis)“ bearer_token <- „(Ihr Bearer-Token)“ ## create token token <- create_token( app_name, Consumer_key, Consumer_secret) ## print token (nur um sicherzustellen, dass es funktioniert) token
Hinweis: Ersetzen Sie im obigen R-Code das Consumer_key, Consumer_secretUnd bearer_token mit Ihrem eigenen in Anführungszeichen (ohne Klammern). Jede an Twitter gesendete Anfrage muss ein Token enthalten, daher sollten Sie es als Umgebungsvariable speichern.
## Token im Residence-Verzeichnis speichern path_to_token <- file.path(path.develop("~"), ".twitter_token.rds") saveRDS(token, path_to_token) ## Env-Variable TWITTER_PAT erstellen (mit Pfad zum gespeicherten Token) env_var <- paste0("TWITTER_PAT=", path_to_token) ## als .Renviron-Datei speichern (oder anhängen, wenn die Datei bereits existiert) cat(env_var, file = file.path(path.develop("~"), ".Renviron" ), fill = TRUE, append = TRUE) ## restart .Renviron-Variablen readRenviron("~/.Renviron")
Holen Sie sich den Hashtag #data20
Nach dem Einrichten der Startcodes besteht der nächste Schritt darin, den Code zum Sammeln der Daten festzulegen. Der folgende Beispielcode durchsucht Tweets nach dem Hashtag #data20 und 25.000 Ergebnisse zurückgeben, ohne Retweets.
##https://public.tableau.com/profile/jeffrey.shaffer#!/vizhome/DATA20BYTHEMINUTE/DATA20Hashtag rt <- search_tweets( "#data20", n = 25000, include_rts = FALSE ) Standort <- users_data(rt)
Nachdem die Daten erfasst wurden, schreibt das nächste Codebit die Daten in eine CSV-Datei. Ersetzen Sie den Pfad und Dateinamen unten durch den gewünschten Speicherort.
## Ändern Sie unten Ihre Dateipfade nach Bedarf fwrite(rt, file = „D:DropboxData20 Tweets.csv“) fwrite(location, file = „D:DropboxData20 Areas.csv“)
Die endgültige Ausgabe besteht aus zwei CSV-Dateien, eine mit den Tweets und die andere Standortdatei mit den Benutzerinformationen. Sie können eine Beziehung (Nudel) erstellen oder sie in Tableau über das Feld zusammenfügen Benutzer-ID.
Lesen Sie Twitter-Standing-IDs und suchen Sie nach Tweets
Ein weiteres nützliches Software ist das Nachschlagen bestimmter Twitter-Standing-IDs und der Tweets. Ich habe diese Technik beispielsweise letztes Jahr verwendet, um die Aktivität meiner Tableau-Tipps zu verfolgen. Ich habe 194 Tipps veröffentlicht und wollte sehen, welche Tipps am Ende des Jahres am beliebtesten sind. Dazu habe ich ein Google Sheet verwendet, das eine Liste aller Tweets enthielt, insbesondere die Tweet-Standing-ID.
Im folgenden R-Code lese ich diese Standing-IDs aus einem Google Sheet in R ein und schlage dann jede einzelne nach, um die Informationen zu jedem Tweet zu sammeln. In diesem Fall befindet sich die Standing-ID am Ende der URL, sodass es eine Codezeile gibt, die die Status_ID aus dem URL-Hyperlink analysiert. Wenn Sie eine einfache Liste nur der Standing-IDs hätten, die Sie verfolgen möchten, müssten Sie diese nicht aus der URL analysieren.
## Ex. https://docs.google.com/spreadsheets/d/15_ikKizR52ugsZW2G0pCcmVW1_2qWzOd6dkGg9bBJuU/edit?usp=sharing #set up.packages(‚gsheet‘) Bibliothek(gsheet) Bibliothek(stringr) Tipsheet <- gsheet2tbl('docs.google.com/ spreadsheets/d/15_ikKizR52ugsZW2G0pCcmVW1_2qWzOd6dkGg9bBJuU') ##Parsen Sie die Status_Id aus dem URL-Hyperlink tipsheet$StatusID <- substr(tipsheet$Hyperlink,43,str_length(tipsheet$Hyperlink)-5) status_ids <- tipsheet$StatusID ##Suchen Sie Tweets nach Standing ID twt <- lookup_tweets(status_ids,token = bearer_token()) ##Speichern Sie die Datentabelle im CSV-Format (ändern Sie den Dateipfad unten nach Bedarf) Library(knowledge.desk) fwrite(twt, file ="D:Dropbox TableauTip.csv")
Das rtweet-Paket in R
Im rtweet-Paket sind eine Reihe weiterer Instruments verfügbar. Sie können beispielsweise Follower, Erwähnungen, Favoriten und Timelines eines Benutzers abrufen. Sie können Mitglieder oder Abonnenten einer Liste herunterladen. Sie können die von Ihnen gesendeten oder empfangenen Direktnachrichten abrufen. Sie können Developments auf Twitter weltweit herunterladen, indem Sie einen Stadtnamen oder sogar einen Längen- und Breitengrad verwenden. Weitere Informationen und Beispielcode für einige dieser anderen Dinge finden Sie hier Die Dokumentation zum RTweet-Paket finden Sie hier.
Nachfolgend finden Sie den gesamten für dieses Projekt verwendeten Code als Kurzreferenz zum Kopieren und Einfügen.
## Allgemeine Informationen vignette(„auth“, bundle = „rtweet“) ## Entwicklerversion von rtweet von Github installieren remotes::install_github(„ropensci/rtweet“) ## httpuv installieren, falls noch nicht geschehen if (!requireNamespace(„httpuv „, quietly = TRUE)) { set up.packages(„httpuv“) } ##Diese Pakete installieren set up.packages(„rtweet“, dependencies=TRUE) set up.packages(„jsonlite“) set up.packages(„stringr“) Bibliothek(jsonlite) Bibliothek(rtweet) ## Title der Twitter-App und API-Einstellungen app_name <- „(Ihr Twitter-App-Title)“ Consumer_key <- „(Ihr Verbraucherschlüssel)“ Consumer_secret <- „(Ihr Verbrauchergeheimnis)“ Bearer_token < - „(Ihr Bearer-Token)“ ## Token erstellen token <- create_token(app_name, Consumer_key, Consumer_secret) ## Token drucken (nur um sicherzustellen, dass es funktioniert) token ## Token im Residence-Verzeichnis speichern path_to_token <- file.path( path.develop("~"), ".twitter_token.rds") saveRDS(token, path_to_token) ## Env-Variable TWITTER_PAT erstellen (mit Pfad zum gespeicherten Token) env_var <- paste0("TWITTER_PAT=", path_to_token) ## speichern als .Renviron-Datei (oder anhängen, wenn die Datei bereits existiert) cat(env_var, file = file.path(path.develop("~"), ".Renviron"), fill = TRUE, append = TRUE) ## restart . Renviron-Variablen readRenviron("~/.Renviron") ## Bsp. https://docs.google.com/spreadsheets/d/15_ikKizR52ugsZW2G0pCcmVW1_2qWzOd6dkGg9bBJuU/ #set up.packages('gsheet') Bibliothek(gsheet) Bibliothek(stringr) Tipsheet <-gsheet2tbl('docs.google.com/spreadsheets/d/15_ikKizR52ugsZW2G0pCcmVW1 _2qWzOd6dkGg9bBJuU ') ##Parsen Sie die Status_Id aus dem URL-Hyperlink tipsheet$StatusID <- substr(tipsheet$Hyperlink,43,str_length(tipsheet$Hyperlink)-5) status_ids <- tipsheet$StatusID ##Tweets nach Standing-ID suchen twt <- lookup_tweets (status_ids,token = bearer_token()) ##Speichern Sie die Datentabelle im CSV-Format (ändern Sie den Dateipfad unten nach Bedarf). ##Dies battle der Code, um den #data20-Hashtag für meine Visualisierung zu erhalten ##https://public.tableau.com/profile/jeffrey.shaffer#!/vizhome/DATA20BYTHEMINUTE/DATA20Hashtag rt <- search_tweets( "#data20", n = 25000, include_rts = FALSE ) Speicherort <-users_data(rt) ## Ändern Sie Ihre Dateipfade unten nach Bedarf fwrite(rt, file = „D:DropboxData20 Tweets.csv“) fwrite(location, file = „D:DropboxData20 Areas.csv“)
Ich hoffe, dass Sie diese Informationen nützlich finden. Wenn Sie Fragen haben, schreiben Sie mir gerne eine E-Mail an Jeff@DataPlusScience.com
Jeffrey A. Shaffer
Auf Twitter folgen @HighVizAbility