StatsCalculators.com

Frequency Table

Created:September 15, 2024
Last Updated:April 6, 2025

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

Note: Column names will be converted to snake_case (e.g., "Product ID" → "product_id") for processing.

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 RangeGradeFrequencyPercentageCumulative %
90-100A1515.0%15.0%
80-89B2525.0%40.0%
70-79C3535.0%75.0%
60-69D2020.0%95.0%
Below 60F55.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.

R

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()

Related Calculators