R/sentiment.compare.R

Defines functions sentiment.compare

Documented in sentiment.compare

#' @title rSentiment Statistics
#' @description Blank Description.
#' @param s NRC Sentiment Data
#' @param n Name
#' @keywords package
#' @return NULL
#' @export
#' @examples sentiment.compare()
#' sentiment.compare(nk.sentiment, nk.name, cbo.sentiment, cbo.name)
#' sentiment.compare(nk.sentiment, nk.name, cbo.sentiment, cbo.name, "anger", TRUE)

sentiment.compare <- function(d, dn, c, cn, test, e) {

if('dplyr' %in% rownames(installed.packages()) == TRUE) {
require(dplyr)} else {
install.packages("dplyr", repos = "http://cran.us.r-project.org")	
require(dplyr)}

if('reshape' %in% rownames(installed.packages()) == TRUE) {
require(reshape)} else {
install.packages("reshape", repos = "http://cran.us.r-project.org")	
require(reshape)}

if('ggplot2' %in% rownames(installed.packages()) == TRUE) {
require(ggplot2)} else {
install.packages("ggplot2", repos = "http://cran.us.r-project.org")	
require(ggplot2)}

if('ggpubr' %in% rownames(installed.packages()) == TRUE) {
require(ggpubr)} else {
install.packages("ggpubr", repos = "http://cran.us.r-project.org")	
require(ggpubr)}

capitalize <- function(s){

name <- s

CapStr <- function(y) {
  c <- strsplit(y, " ")[[1]]
  paste(toupper(substring(c, 1,1)), substring(c, 2),
      sep="", collapse=" ")}

capitalize_str <- function(charcter_string){sapply(charcter_string, CapStr)}

return(capitalize_str(name))

}

nk.sentiment <- d
nk.name <- dn

cbo.sentiment <- c
cbo.name <- cn

stats.test <- "t.test"
stats.test <- test

if(missing(e)) {

nk.reshape <- reshape2::melt(nk.sentiment,
	variable.name = "emotion",
	value.name = "sentiment",
	id.vars = c("created_at", "favorite_count", "retweet_count","text"))
nk.reshape <- mutate(nk.reshape, query = paste(nk.name))

cbo.reshape <- reshape2::melt(cbo.sentiment,
	variable.name = "emotion",
	value.name = "sentiment",
	id.vars = c("created_at", "favorite_count", "retweet_count","text"))
cbo.reshape <- mutate(cbo.reshape, query = paste(cbo.name))

sentiment.combined <- rbind(nk.reshape, cbo.reshape)

sentiment.boxplot <- ggplot(sentiment.combined, aes(x = query, y = sentiment, color = query, fill = query)) +
    geom_jitter() + stat_boxplot() + theme(legend.position = "bottom") +
    labs(title = paste0("Sentiment Comparison for Querys ", nk.name, " & ", cbo.name), 
    y = "Sentiment Level", x = element_blank(),  color = "Query", fill = "Query") + 
    stat_compare_means(method = paste0(stats.test)) + facet_wrap(~ emotion, ncol = 4)
sentiment.boxplot

return(sentiment.boxplot)

} else {

filter.emotion <- e

filter.emotion <- tolower(filter.emotion)

nk.reshape <- reshape2::melt(nk.sentiment,
	variable.name = "emotion",
	value.name = "sentiment",
	id.vars = c("created_at", "favorite_count", "retweet_count","text"))
nk.reshape <- mutate(nk.reshape, query = paste(nk.name))

cbo.reshape <- reshape2::melt(cbo.sentiment,
	variable.name = "emotion",
	value.name = "sentiment",
	id.vars = c("created_at", "favorite_count", "retweet_count","text"))
cbo.reshape <- mutate(cbo.reshape, query = paste(cbo.name))

sentiment.combined <- rbind(nk.reshape, cbo.reshape)

sentiment.sort <- sentiment.combined %>% filter(emotion == paste0(filter.emotion))

plot.emotion <- capitalize(filter.emotion)

sentiment.boxplot <- ggplot(sentiment.sort, aes(x = query, y = sentiment, color = query, fill = query)) +
    geom_jitter() + stat_boxplot() + theme(legend.position = "bottom") +
    labs(title = paste0(plot.emotion, " Sentiment Comparison for Querys ", nk.name, " & ", cbo.name), 
    y = "Sentiment Level", x = element_blank(), color = "Query", fill = "Query") + 
    stat_compare_means(method = paste0(stats.test))
sentiment.boxplot

return(sentiment.boxplot)

}

}
sabalicodev/sabali documentation built on Jan. 13, 2020, 2:22 p.m.