To create a frequency table of multiple variables in R, you can use table() function and summarise() function from dplyr package.

The following methods show how you can do it with syntax.

Method 1: Use table() Function

table(df$column1, df$column2)


Method 2: Use dplyr Package

library(dplyr)

df %>%
group_by(df$column1, df$column2) %>%
summarise(count = n())


The following examples show how to create frequency table of multiple variables in R.

## Create Frequency Table of Multiple Variables Using table() Function in R

Let’s see how we can use table() function in R:

# Create data frame
df <- data.frame(Machine_name=c("A","B","C","D","E","F","G","H","A","B","A","C","D","B","E","H"),
Pressure=c(12.39,11.25,12.15,13.48,13.78,9.63,12.21,12.58,9.6,8.85,7.89,8.50,12.36,11.45,9.47,8.12),
Status=c("OK","Suspect","OK","OK","Suspect","Suspect","Suspect","OK","OK","OK","OK","OK","Suspect","Suspect","Suspect","OK"))

# Create frequency table
f <- table(df$Machine_name, df$Status)

# Print frequency table
print(f)


Output:

    OK Suspect
A  3       0
B  1       2
C  2       0
D  1       1
E  0       2
F  0       1
G  0       1
H  2       0


Here the output shows frequency table for Machine_name and Status column of data frame.

## Create Frequency Table of Multiple Variables Using dplyr Package in R

Let’s see how we can use function from dplyr package:

library(dplyr)

# Create data frame
df <- data.frame(Machine_name=c("A","B","C","D","E","F","G","H","A","B","A","C","D","B","E","H"),
Pressure=c(12.39,11.25,12.15,13.48,13.78,9.63,12.21,12.58,9.6,8.85,7.89,8.50,12.36,11.45,9.47,8.12),
Status=c("OK","Suspect","OK","OK","Suspect","Suspect","Suspect","OK","OK","OK","OK","OK","Suspect","Suspect","Suspect","OK"))

# Create frequency table
f <- df %>%
group_by(df$Machine_name, df$Status) %>%
summarise(count = n())

# Print frequency table
print(f)


Output:

   df$Machine_name df$Status count
<chr>             <chr>       <int>
1 A                 OK              3
2 B                 OK              1
3 B                 Suspect         2
4 C                 OK              2
5 D                 OK              1
6 D                 Suspect         1
7 E                 Suspect         2
8 F                 Suspect         1
9 G                 Suspect         1
10 H                 OK              2


Here the output shows frequency table for Machine_name and Status column of data frame.