#' @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)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.