A suite of tools for collecting and constructing networks from social media data. Provides easy-to-use functions for collecting data across popular platforms (Twitter, YouTube and Reddit) and generating different types of networks for analysis.
vosonSML is an R package that provides a suite of tools for collecting and constructing networks from social media data. It provides easy-to-use functions for collecting data across popular platforms and generating different types of networks for analysis.
vosonSML is the
SocialMediaLab package, renamed. We decided that
SocialMediaLab was a bit too generic and also we wanted to indicate the connection to the Virtual Observatory for the Study of Online Networks Lab, where this package was conceived and created.
vosonSML currently features the collection of data and generation of networks from
Unfortunately we are no longer able to maintain
Install the current version from Github:
# requires the 'devtools' package (or alternatively 'remotes')library(devtools)# optionally add the parameter 'dependencies = TRUE' to install package dependenciesdevtools::install_github("vosonlab/vosonSML")
Install vosonSML from CRAN:
install.packages("vosonSML", dependencies = TRUE)
Note about previous releases: The vosonSML package was previously in a subdirectory, so if you wish to install versions prior to
0.26 please remember to include the
devtools::install_github("vosonlab/[email protected]", subdir = "vosonSML")
The following usage examples will provide a great introduction to using
vosonSML. There are also several "how to" guides, including an "Absolute Beginners Guide to vosonSML" tutorial aimed at people with little or no programming experience on the vosonSML page of the VOSON website.
The process of authentication, data collection and creating social network in vosonSML is expressed with the three verb functions: Authenticate, Collect and Create. The following are some examples:
library(magrittr)library(vosonSML)# Twitter Example# Authenticate with twitter, Collect 100 tweets for the '#auspol' hashtag and Create an actor and# semantic networkmyKeys <- list(appName = "vosonSML", apiKey = "xxxxxxxxxxxx", apiSecret = "xxxxxxxxxxxx",accessToken = "xxxxxxxxxxxx", accessTokenSecret = "xxxxxxxxxxxx")twitterAuth <- Authenticate("twitter", appName = myKeys$appName, apiKey = myKeys$apiKey,apiSecret = myKeys$apiSecret, accessToken = myKeys$accessToken,accessTokenSecret = myKeys$accessTokenSecret, useCachedToken = TRUE)twitterData <- twitterAuth %>%Collect(searchTerm = "#auspol", searchType = "recent", numTweets = 100,includeRetweets = FALSE, retryOnRateLimit = TRUE, writeToFile = TRUE,verbose = TRUE)actorNetwork <- twitterData %>% Create("actor", writeToFile = TRUE, verbose = TRUE)actorGraph <- actorNetwork$graph # igraph network graph# Optional step to add additional twitter user info to actor network graph as node attributesactorNetWithUserAttr <- AddUserData.twitter(twitterData, actorNetwork,lookupUsers = TRUE,twitterAuth = twitterAuth, writeToFile = TRUE)actorGraphWithUserAttr <- actorNetWithUserAttr$graph # igraph network graphsemanticNetwork <- twitterData %>% Create("semantic", writeToFile = TRUE)# Youtube Example# Authenticate with youtube, Collect comment data from videos and then Create an actor networkmyYoutubeAPIKey = "xxxxxxxxxxxxxx"myYoutubeVideoIds <- GetYoutubeVideoIDs(c("",""))actorNetwork <- Authenticate("youtube", apiKey = myYoutubeAPIKey) %>%Collect(videoIDs = myYoutubeVideoIds) %>%Create("actor", writeToFile = TRUE)# Reddit Example## Collect reddit comment threads and Create an actor network with comment text as edge attributemyThreadUrls <- c("")actorNetwork <- Authenticate("reddit") %>%Collect(threadUrls = myThreadUrls, waitTime = 5) %>%Create("actor", includeTextData = TRUE, writeToFile = TRUE)
For more detailed information and examples, please refer to the function Reference page.
Create.actor.redditthat were incorrectly creating edges between top-level commentors and thread authors from different threads. These bugs were only observable in when collecting multiple reddit threads.
twitter APIreset time.
Create.bimodal.twitterin which the vertices dataframe provided to the
graph_from_data_framefunction as a contained duplicate names raising an error.
roxygendocumentation and examples for all package functions.
CreateS3 methods to implement function routing based on object class names.
pkgdownweb site for github hosted package documentation.
.twitter_oauth_tokenfile and used for subsequent
twitter APIrequests without re-authentication. A new authentication token can be cached by deleting this file and using the re-using the parameter
useCachedToken = TRUE.