R/sentiment.joyplot.R

Defines functions sentiment.joyplot

Documented in sentiment.joyplot

#' @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)	
	
}
sabalicodev/sabali documentation built on Jan. 13, 2020, 2:22 p.m.