Can you measure how fans feel about a franchise without paying for a survey? For an MBA research project, I collected thousands of Reddit comments about Dragon Ball, scored them for sentiment and emotion in R, and charted the results in Tableau. Sentiment skews positive, and trust and anticipation are the strongest emotions. However, the comments rarely mention news, so I couldn’t tie spikes to specific events. Below is the full process, with code, so you can repeat it for any brand.
My case study is Dragon Ball (DB), the anime and manga series by Akira Toriyama. DB follows Goku and his friends as they seek wish-granting Dragon Balls, train in martial arts, and fight enemies across fictional worlds.
I do not use “DBZ” as the abbreviation because I am observing the entire franchise, not just the Dragon Ball Z show.
TLDR
- Collect: RedditExtractoR pulls posts with 500+ comments from r/dbz and r/dragonball.
- Score: syuzhet and AFINN rate each comment positive or negative, and the NRC lexicon tags emotions like joy, trust, and anger.
- Visualize: Tableau dashboards for top authors, sentiment over time, emotions, and activity by hour.
- Findings: mostly positive, with anger and fear spikes likely driven by long-running debates (power levels, art style, Broly).
- What’s missing: a comparison with competitors like Naruto and One Piece.
🌸👋🏻 Enjoying this post? Get the next issue of [ret]2read. Once a month, I’ll email you whatever’s on my mind, usually Apple security research, offensive security, open source software freedom, and operating system internals.
Step 1: Data Collection in R
1. Choose a Platform
To analyze DB, I gathered my data on Reddit. Reddit communities (such as r/dbz and r/dragonball) share experiences, opinions, and analyses of the series.
I could have also used X. While X hosts DB interactions, tweets are generally shorter and lack the depth of Reddit threads. While X users might post quick reactions, fan art, or brief opinions, the detailed and often analytical nature of Reddit discussions makes it a better source for exploring DB’s reputation.
2. Set Up R and Required Libraries
Use the rtweet package for X or RedditExtractoR for Reddit. Both packages allow me to fetch posts based on specific keywords.
3. Download 1,000+ Comments
In this program, I used the Reddit API via the RedditExtractoR package to gather, filter, analyze, and export data related to posts and comments on Reddit about “Dragon Ball.”
The program installs and loads the necessary package (RedditExtractoR), and fetches all Reddit URLs matching the phrase “Dragon Ball.”
Then, the program narrows the data to use specific subreddits (i.e., “dbz” and “dragonball”). These URLs are filtered again to only include posts with more than 500 comments.
I create a boxplot to visualize which subreddits receive the most comments, but I do not actually use this information for anything else. I included it because I think it is interesting.

Subreddits with Posts Containing 500+
comments relating to Dragon Ball.
Then, it retrieves content from the posts associated with the filtered URLs. The comments from these posts are extracted and consolidated into a single data frame. Finally, the combined dataset of comments is saved as a CSV, dragonball_comments3.csv.
If I rerun this script, I can obtain the most recent Reddit posts that fit the criteria described.
Step 2: Conduct Sentiment Analysis in R
Next, I use the syuzhet library to perform sentiment analysis.
This program performs sentiment analysis on the dataset of comments stored in the CSV file dragonball_comments3.csv. Using the syuzhet library, it loads the comments into a variable called rawdata.
Then, the get_sentiment function is applied to the comment column of the dataset using two different sentiment analysis methods: “syuzhet” and “afinn”. The resulting sentiment scores are stored in the variables sent and sent2, respectively.
Additionally, the get_nrc_sentiment function analyzes the comments and determines the presence of various emotions (such as joy, anger, sadness, etc.) based on the NRC sentiment lexicon, with the scores stored in the nrcscores.
After that, a box plot is created to visualize the distribution of these NRC emotion scores.

NRC Emotion Score Distribution (Box Plot).
Finally, the sentiment scores are combined with the original dataset using the cbind function, creating a new dataset called finaldata, which is then saved as a CSV file named commentswithsentiment3.csv. This CSV will be imported into Tableau to create more visualizations of the data.
Step 3: Visualization of Sentiment and Patterns using Tableau
1. Import to Tableau
Here, I take the CSV, commentswithsentiment3.csv, and import it into Tableau.
2. Visualize Patterns
Now, I can look for spikes in sentiment that may align with specific events, product launches, or news. Since I am only analyzing a few posts, it is difficult to gauge the overall sentiment towards DB.
I would run this script every few days to collect data over time if I wanted more meaningful analysis. Alternatively, I would adjust the parameters in my script to filter for the best posts through periodic date ranges to obtain a backlog of data. Data over time would give me a more comprehensive overview, but would also make my data analysis harder as the computer I am using to conduct this analysis might not have the processing power to analyze this much data in Tableau. Although adding more data is not usually computationally demanding, Tableau is a heavy application. Thus, adding more data to create more views taxes computer resources.
This is problematic because there were many notable events in 2024 that might affect the overall sentiment towards the series. I will discuss this later.
Sentiment Overview
Now, let’s explore some sentiment overview trends.
Popular Authors & Active Authors

Authors Dashboard
The Popular Authors chart highlights the most upvoted authors, indicating their influence in driving discussions. The Active Authors chart shows authors contributing the most content, though not all are equally upvoted. Regarding patterns, the popularity (upvotes) and activity (comment count) are not strongly correlated, suggesting that a few highly upvoted authors dominate sentiment trends.
Want your company or product in front of [ret]2read readers?
One sponsor per issue →
Sentiment Distribution

Sentiment Dashboard – Ways of Analyzing Sentiment over Time.
Using the Sentiment Overview sheet, the distribution pie chart shows a higher proportion of positive sentiment than negative sentiment. The Sentiment, Time, Emotions line chart shows that positive sentiment consistently outpaces negative. Overall, the sentiment skews positive, with notable negativity possibly tied to specific controversies or negative reviews.
Sentiment Over Time
Using the Sentiment, Time, Emotions sheet, peaks in sentiment correspond to specific dates, indicating events. Negative sentiment spikes suggest polarizing moments. Theoretically, these sentiment trends indicate that DB content generates excitement and polarizing reactions depending on the event.
🌸👋🏻 Enjoying this post? Get the next issue of [ret]2read. Once a month, I’ll email you whatever’s on my mind, usually Apple security research, offensive security, open source software freedom, and operating system internals.
Emotion Insights
In this section, I want to highlight prevalent emotions (e.g., joy, trust, and anger) and what they suggest about customer perception.

Boxplot – Emotion Distribution of the Comments.
Emotion Overview
Using the Emotions Over Time sheet (below), I see emotions like “anticipation” and “trust” frequently peak, which I will discuss later. Anger and fear spikes likely correlate with contentious debates.

Each Emotion Over Time.
In the Emotions Over Time sheet, peaks in anger and fear might align with notable events or contentious debates, while trust and joy likely reflect positive topics (e.g., character achievements or fan appreciation). Frequent anger and fear might also indicate dissatisfaction with certain developments.
Emotions Over Time
Emotion variability can highlight how fans engage with DB. Peaks in joy and trust suggest moments of appreciation, whereas anger and fear indicate divisive topics (no duh). As shown above, emotions dominate specific dates, suggesting their tie to particular discussions or events, which I discuss later.
Patterns Over Time
While the dataset captures thousands of comments, the limited number of posts used as a source means little news is explicitly mentioned. However, as a fan of the series, I know there is a wealth of newsworthy events to discuss.
At present, I am around episode 250 of the series.
The dataset reveals that high-scoring comments reference “Goku,” “Vegeta,” “Super Saiyan,” “Broly,” “art,” and “style.” These suggest discussions focused on character developments, transformations, and visual aspects of the series. However, there is no clear evidence in the dataset of direct mentions of specific news events, such as movie releases, theme parks (one is being built in Saudi Arabia), or product launches.
As such, while the dataset reflects ongoing discussions about the series, it doesn’t capture notable events like the opening of a DB park in Saudi Arabia, movie or game announcements, or news about Akira Toriyama (i.e., his passing). Consequently, this analysis remains surface-level and lacks the depth I prefer when drawing meaningful conclusions.
Patterns Over Time

Comments (Hourly).
The Comments (Hourly) sheet shows activity surging at specific hours, likely driven by event announcements, trending discussions, or streaming events. Most engagement occurs in the evening.
I could not determine what time zone Tableau is measuring (my dataset shows the time zone, but I think Tableau did some sort of conversion), which is unhelpful with the “engagement occurring in the evening” claim.
Overall Analysis

Sentiment Dashboard – Ways of Analyzing Sentiment over Time.
Positive sentiment dominates overall, with spikes in negativity around polarizing topics or events. Trust and anticipation run high, which suggests fan loyalty and excitement, while anger and fear point to contentious debates. Spikes in sentiment and emotion line up with specific dates, yet the dataset mentions few events.
Potential Debates Based on Observed Trends
Earlier, I hinted at a disconnect because no events are explicitly mentioned in the comments, yet extreme emotions might be linked to events.
While my analysis did not reveal direct mentions of notable events (like new releases or announcements), the datasets and charts indicate debates or spikes in sentiment and emotion. These spikes suggest that even if explicit events weren’t mentioned in the comments, events could still drive debates.
For example, discussions surround character dynamics, visual quality, and evolving content. Frequent mentions of “Goku,” “Vegeta,” and “Super Saiyan” highlight very old (yet continuous) debates about character power levels, transformations, and story arcs, including comparisons like Goku vs. Vegeta and Gohan’s development. Conversations about “art” and “style” suggest ongoing debates regarding the visual quality of newer DB adaptations versus older ones. The character “Broly” sparks discussions about his portrayal in DB Super: Broly compared to earlier versions, reflecting fan interest in his evolution. Frustrations related to DB’s games often revolve around gameplay mechanics, microtransactions, and perceived imbalances, contributing to spikes in negative sentiment. Finally, fan divisions over new content (e.g., plotlines in DB Super and DB Heroes) drive positive and negative reactions, fueled by polarizing opinions on new characters, transformations, and retcons.
Why Events Might Not Be Explicitly Mentioned
The dataset’s focus on sentiment and emotions suggests it captures reactions rather than explicitly mentioning events. These debates may reflect responses to ongoing discussions, trends, or rumors. Additionally, long-standing debates, such as “Who’s the best Saiyan?” might reignite due to related events like an anniversary or a new product release, fueling fan conversations. There is also a chance that they are not actually related to any of these things.
Missing Analysis That Would Have Been Useful
Competitors
Analyzing other popular anime—such as Naruto and One Piece—would provide more context around my sentiment analysis of DB. These series share similar themes (e.g., training, personal growth, battles, and friendship), making them natural competitors.
For example, Naruto’s journey as a ninja mirrors Goku’s path of self-improvement. With Luffy’s quest to become Pirate King, One Piece combines humor, fights, and a deep storyline. One Piece’s longevity and popularity rivals DB.
That said, early on I sent requests faster than Reddit’s API rate limit allows, and my access was blocked before I could collect competitor data. Given the time constraints, I had to skip this. Next time, I would add a delay between requests from the start.
🌸👋🏻 Enjoying this post? Get the next issue of [ret]2read. Once a month, I’ll email you whatever’s on my mind, usually Apple security research, offensive security, open source software freedom, and operating system internals.
Conclusion
I collected Reddit comments in R, scored their sentiment, and visualized the trends in Tableau, using DB as the case study. The same process works for evaluating brand reputation, finding opportunities for improvement, and comparing competitors by audience sentiment. It also showed where my methodology needs work.
If you enjoyed this post on my sentiment analysis of DB, consider reading Visualizing Cancer Trends in Tableau.


You must be logged in to post a comment.