table() Function in R

Spread the love

This article aims to provide an in-depth understanding of the table() function, its usage, and its practical applications in R programming.

Introduction to the table() Function

The table() function in R is a useful tool to create contingency tables of categorical variables. It can provide simple and quick summaries of variables, showing the distribution of the data across different levels or groups. It’s particularly helpful in dealing with categorical variables where you want to count the number of occurrences of each factor.

The basic syntax of the table function in R is as follows:

table(..., exclude = if (useNA == "no") c(NA, NaN), 
        useNA = c("no", "ifany", "always"), 
        dnn = list.names(...), deparse.level = 1)

In this syntax:

  • ... : These are the object(s) for which you wish to get the count.
  • exclude: This is a vector of values to be excluded while counting.
  • useNA: This controls the treatment of NA values and can take one of three values: “no”, “ifany”, and “always”. If “no”, then no count of NA values is included. If “ifany”, then NA count is included if there are any. If “always”, then NA count is always included.
  • dnn: This is a character vector giving the names to be used for the dimensions in the result.
  • deparse.level: This controls the construction of labels in the result.

Basic Usage of the table() Function

Let’s begin with the simplest way to use the table() function. Suppose we have a vector of categorical data and we want to find the count of each category. We can easily do this using the table() function.

# Create a vector
fruit <- c("apple", "orange", "banana", "apple", "banana", "apple")

# Use the table() function
fruit_table <- table(fruit)

This will print a table showing the count of each type of fruit in the vector.

Using the table() Function with Data Frames

In real-life scenarios, we usually work with larger datasets stored in data frames. Here’s how we can apply the table() function to a data frame:

# Create a data frame
df <- data.frame(
  Gender = c("Male", "Female", "Female", "Male", "Male", "Female"),
  Smoking = c("Smoker", "Non-smoker", "Smoker", "Non-smoker", "Smoker", "Smoker")

# Use the table() function
smoking_table <- table(df)

This code creates a 2×2 contingency table, showing the distribution of smokers and non-smokers within each gender.

Creating Multi-dimensional Tables

The table() function also allows creating multi-dimensional tables by passing more than one vector or variable.

# Create a data frame
df <- data.frame(
  Gender = c("Male", "Female", "Female", "Male", "Male", "Female"),
  Smoking = c("Smoker", "Non-smoker", "Smoker", "Non-smoker", "Smoker", "Smoker"),
  Region = c("North", "South", "East", "West", "North", "South")

# Use the table() function
region_table <- table(df$Gender, df$Smoking, df$Region)

This will create a 3-dimensional table showing the distribution of smokers and non-smokers within each gender and region.

Handling NA Values in the table() Function

By default, the table() function excludes NA values. However, we can control this behavior using the useNA parameter.

# Create a vector with NA values
data <- c("A", "B", "A", NA, "B", "B", "A", NA)

# Use the table() function
data_table <- table(data, useNA = "ifany")

This will include the count of NA values in the table only if there are any NA values present.

Practical Applications of the table() Function

The table() function is a versatile tool with a wide range of applications in data analysis. It’s particularly useful for:

  • Descriptive Statistics: The table() function can provide quick summaries of categorical data, showing the count or frequency of different categories. This can be useful for initial exploratory data analysis.
  • Data Cleaning: By providing a summary of categorical data, the table() function can help identify errors or anomalies in the data. For example, you might discover misspelled or inconsistent category names.
  • Hypothesis Testing: The tables created by the table() function can be used for various hypothesis tests, such as the Chi-squared test for independence or the Fisher’s exact test.
  • Data Visualization: Although the table() function itself doesn’t create visualizations, the tables it creates can be used as input for various graphing functions. For example, you might create a bar plot showing the count of each category.


The table() function in R is an efficient tool for creating contingency tables of categorical variables. It’s a simple yet powerful function that can aid in various stages of the data analysis process, from initial data exploration to hypothesis testing and data visualization.

Posted in RTagged

Leave a Reply