- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- 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 aggregate matrix columns by row names in R?
To aggregate matrix columns by row names, we can use colSums with sapply and transpose the output. For example, if we have a matrix called M then the aggregate matrix columns by row names can be done using t(sapply(by(M,rownames(M),colSums),identity)).
Example1
Consider the below matrix −
> M1<-matrix(rpois(40,2),ncol=2) > rownames(M1)<-sample(c("A","B","C","D"),20,replace=TRUE) > M1
Output
[,1] [,2] B 4 6 D 2 1 B 1 5 C 0 0 A 2 3 B 1 0 B 5 3 D 1 3 C 0 1 C 0 2 D 1 1 B 7 2 C 2 3 C 2 3 C 2 2 C 1 2 B 1 1 C 5 3 D 2 2 D 5 2
Finding the aggregate of M1 by row names −
> t(sapply(by(M1,rownames(M1),colSums),identity))
Output
V1 V2 A 2 3 B 19 17 C 12 16 D 11 9
Example2
> M2<-matrix(rpois(40,10),ncol=2) > rownames(M2)<-sample(c("S1","S2","S3"),20,replace=TRUE) > M2
Output
[,1] [,2] S1 6 10 S3 7 11 S3 13 6 S1 9 9 S2 11 9 S3 6 8 S1 4 5 S3 8 12 S2 14 8 S3 11 7 S1 15 12 S3 8 13 S3 9 10 S1 10 8 S2 14 18 S1 13 10 S1 10 4 S3 12 7 S2 5 9 S3 13 8
Finding the aggregate of M2 by row names −
> t(sapply(by(M2,rownames(M2),colSums),identity))
Output
V1 V2 S1 67 58 S2 44 44 S3 87 82
- Related Articles
- How to remove multiple columns from matrix in R by using their names?
- How to convert a matrix to a data frame with column names and row names as new columns in R?
- How to remove the row names or column names from a matrix in R?
- How to find the column names and row names from a matrix in R?
- How to merge data frames by row names in R?
- How to create a subset of a matrix in R using row names?
- How to change the repeated row names and column names to a sequence in a matrix in R?
- How to divide the row values by row mean in R matrix?
- How to divide the row values by row sum in R matrix?
- How to divide matrix rows in R by row median?
- How to divide matrix values by row variance in R?
- How to change the column names in R within aggregate function?
- How to convert a matrix into a data frame with column names and row names as variables in R?
- How to divide the matrix rows by row minimum in R?
- How to divide the matrix rows by row maximum in R?

Advertisements