 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to create a table with sub totals for every row and column in R?
The sub totals for every row and column are actually called marginal sums. Therefore, we can use addmargins function to our table to get the sub totals for every row and column.
For example, if we have table called TABLE then we can add the sub totals by using the command given below −
TABLE<-addmargins(TABLE,c(1,2),sum)
Check out the examples given below to understand how it works.
Example 1
Following snippet creates a sample data frame −
x1<-rpois(20,1) y1<-rpois(20,5) df1<-data.frame(x1,y1) df1
Output
The following dataframe is created −
x1 y1 1 0 5 2 1 6 3 0 3 4 1 4 5 3 6 6 2 4 7 3 6 8 0 4 9 1 5 10 0 2 11 2 5 12 1 2 13 0 7 14 2 4 15 0 6 16 2 3 17 0 2 18 1 5 19 2 5 20 0 5
To create a table with sub totals for every row and column, add the following code to the above snippet −
x1<-rpois(20,1) y1<-rpois(20,5) df1<-data.frame(x1,y1) table1<-table(df1$x1,df1$y1) table1
Output
If you execute all the above given snippets as a single program, it generates the following Output −
2 3 4 5 6 7 0 2 1 1 2 1 1 1 1 0 1 2 1 0 2 0 1 2 2 0 0 3 0 0 0 0 2 0
To create a table with sub totals for every row and column, add the following code to the above snippet −
table1<-addmargins(table1,c(1,2),sum) Margins computed over dimensions in the following order: 1: 2: table1
Output
If you execute all the above given snippets as a single program, it generates the following Output −
2 3 4 5 6 7 sum 0 2 1 1 2 1 1 8 1 1 0 1 2 1 0 5 2 0 1 2 2 0 0 5 3 0 0 0 0 2 0 2 sum 3 2 4 6 4 1 20
Example 2
Following snippet creates a sample data frame −
x2<-rpois(20,5) y2<-rpois(20,5) df2<-data.frame(x2,y2) df2
Output
The following dataframe is created −
x2 y2 1 1 7 2 7 6 3 5 3 4 4 3 5 6 3 6 4 3 7 4 4 8 4 7 9 4 5 10 4 6 11 7 7 12 8 9 13 4 7 14 6 6 15 3 6 16 7 5 17 3 3 18 4 0 19 6 7 20 5 4
To create a table with sub totals for every row and column, add the following code to the above snippet −
x2<-rpois(20,5) y2<-rpois(20,5) df2<-data.frame(x2,y2) table2<-table(df2$x2,df2$y2) table2
Output
If you execute all the above given snippets as a single program, it generates the following Output −
0 3 4 5 6 7 9 1 0 0 0 0 0 1 0 3 0 1 0 0 1 0 0 4 1 2 1 1 1 2 0 5 0 1 1 0 0 0 0 6 0 1 0 0 1 1 0 7 0 0 0 1 1 1 0 8 0 0 0 0 0 0 1
To create a table with sub totals for every row and column, add the following code to the above snippet −
table2<-addmargins(table2,c(1,2),sum) Margins computed over dimensions in the following order: 1: 2: table2
Output
If you execute all the above given snippets as a single program, it generates the following Output −
0 3 4 5 6 7 9 sum 1 0 0 0 0 0 1 0 1 3 0 1 0 0 1 0 0 2 4 1 2 1 1 1 2 0 8 5 0 1 1 0 0 0 0 2 6 0 1 0 0 1 1 0 3 7 0 0 0 1 1 1 0 3 8 0 0 0 0 0 0 1 1 sum 1 5 2 2 4 5 1 20
