This calculator creates a structured table showing how often values appear in your dataset. It displays the frequency (count), cumulative frequency, percentage, and cumulative percentage of each unique value, helping you identify patterns and distributions in your data. You can choose how categories are sorted (alphabetically, by weekday, by month, numerically, or in a custom order you define) to best represent your data. A bar chart is also included to better understand your data's distribution.
Related tools you might find useful:
- Histogram - Grouped frequency table for numeric data with ranges (0-10, 11-20, etc.)
- Contingency table - Two way frequency table between two categorical variables
- Pivot table - Custom aggregations (count, sum, etc.) for multiple categorical variables and a numeric variable
Quick Calculator
Need a quick calculation? Enter your numbers below:
Calculator
1. Load Your Data
2. Select Columns & Options
Learn More
Frequency Tables
What is a Frequency Table?
A frequency table is a statistical tool that organizes data by displaying how often each distinct value occurs in a dataset. It provides a structured way to summarize data distribution through counts and percentages.
Absolute Frequency
The actual count of how many times each value appears in the dataset.
- Raw counts
- Direct observations
- Actual frequencies
Relative Frequency
The proportion or percentage of each value in relation to the total.
- Proportions
- Percentages
- Ratios
Key Components
Essential Elements:
- Categories or values
- Frequency counts
- Relative frequencies
- Cumulative frequencies
Optional Elements:
- Class intervals
- Percentage distribution
- Summary statistics
- Visual representations
Academic Example: Final Exam Scores Distribution
Distribution of final exam scores for 100 students in a statistics course.
Score Distribution
Score Range | Grade | Frequency | Percentage | Cumulative % |
---|---|---|---|---|
90-100 | A | 15 | 15.0% | 15.0% |
80-89 | B | 25 | 25.0% | 40.0% |
70-79 | C | 35 | 35.0% | 75.0% |
60-69 | D | 20 | 20.0% | 95.0% |
Below 60 | F | 5 | 5.0% | 100.0% |
Grade Distribution
Key Insights:
- Mode: Grade C (Most common grade)
- 40% of students received grades B or higher
- Only 5% of students failed the exam
- The distribution shows a roughly normal curve
This frequency table helps instructors understand the overall class performance, identify areas for improvement, and compare with expected grade distributions.
Creating Frequency Tables in R
Here is an example of how to create frequency tables and visualizations in R using the tidyverse package.
library(tidyverse)
tips <- read.csv("https://raw.githubusercontent.com/plotly/datasets/master/tips.csv")
# frequency table ordered alphabetically
freq_table <- tips |>
group_by(day) |>
summarise(
frequency = n(),
) |>
mutate(
cumulative_frequency = cumsum(frequency),
percentage = frequency / sum(frequency) * 100
)
ggplot(freq_table, aes(x = day, y = frequency)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = frequency), vjust = -0.5) +
labs(
title = "Frequency Distribution of Days",
x = "Weekday",
y = "Frequency (Count)"
) +
theme_minimal()
# custom order for days
tips$day <- factor(tips$day, levels = c("Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun"))
# ordered frequency table
ordered_freq_table <- tips |>
group_by(day) |>
summarise(
frequency = n(),
) |>
mutate(
cumulative_frequency = cumsum(frequency),
percentage = frequency / sum(frequency) * 100
)
ggplot(ordered_freq_table, aes(x = day, y = frequency)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = frequency), vjust = -0.5) +
labs(
title = "Ordered Frequency Distribution of Days",
x = "Weekday",
y = "Frequency (Count)"
) +
theme_minimal()