2012-06-17 180 views
2

我有兩個矩陣。第一個包含值,第二個包含與這些值相對應的名稱。我想將第一個矩陣中的值與第二個矩陣中的相應名稱相加。R - 總結一個矩陣

例如,給出以下兩個例子矩陣:

set.seed(9) 
matrix_names=matrix(sample(paste("name",1:10,sep=""),replace=T),nrow=2,ncol=4); matrix_names 
matrix_values=matrix(sample(1:10,8,replace=T),nrow=2,ncol=4); matrix_values 

我想產生類似:

matrix_names sum(matrix_values) 
    name1    1 
    name2    6 
    name3    15 
    name4    15 
    name5    5 

任何幫助表示讚賞。

回答

3
un <- unique(as.vector(matrix_names)) 
df <- sapply(un, function(x) sum(matrix_values[which(matrix_names == x)])) 
df[order(names(df))] 
name1 name2 name3 name4 name5 
    1  6 15 15  5 
+0

很好,謝謝! – jslefche