#' @title rSentiment Joyplots
#' @description Blank Description.
#' @param d Text Data
#' @param n Name
#' @keywords package
#' @return NULL
#' @export
#' @examples sentiment.joyplot()
sentiment.joyplot <- function(d, n, rw) {
if('tidytext' %in% rownames(installed.packages()) == TRUE) {
require(tidytext)} else {
install.packages("tidytext", repos = "http://cran.us.r-project.org")
require(tidytext)}
if('textdata' %in% rownames(installed.packages()) == TRUE) {
require(textdata)} else {
install.packages("textdata", repos = "http://cran.us.r-project.org")
require(textdata)}
if('ggjoy' %in% rownames(installed.packages()) == TRUE) {
require(ggjoy)} else {
install.packages("ggjoy", repos = "http://cran.us.r-project.org")
require(ggjoy)}
if('ggridges' %in% rownames(installed.packages()) == TRUE) {
require(ggridges)} else {
install.packages("ggridges", repos = "http://cran.us.r-project.org")
require(ggridges)}
nk.tweets <- d
nk.name <- n
rw <- NA
nk.remove.words <- rw
date.breaks <- "days"
nk.tidy <- nk.tweets %>%
#Unnest - Break the text into individual words
unnest_tokens(word, text) %>%
#Remove undesirables
filter(!word %in% nk.remove.words) %>%
# Remove words with less than 3 characters (an, is)
filter(!nchar(word) < 3) %>%
# Stop words provided by tidytext package
anti_join(stop_words)
# glimpse(nk.tidy)
nk.nrc <- nk.tidy %>% inner_join(get_sentiments("nrc"))
# Sentiment Time Series Joyplot
nk.joyplot <- ggplot(nk.nrc) +
geom_joy(aes(x = created_at, y = sentiment, fill = sentiment),
rel_min_height = 0.01, alpha = 0.7, scale = 3) +
scale_fill_discrete(guide = FALSE) +
theme_joy() + labs(title = paste("Sentiment over Time for Search Term", nk.name), x = "Tweet Date", y = "Sentiment") +
scale_x_datetime(date_breaks = paste0(date.breaks), date_labels = "%m/%d")
nk.joyplot
return(nk.joyplot)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.