2012-06-17 5 views
2

두 개의 행렬을가집니다. 첫 번째 값은 값을 포함하고 두 번째 값은 해당 값에 해당하는 이름을 포함합니다. 첫 번째 행렬의 값을 두 번째 행렬의 해당 이름으로 더하고 싶습니다. 다음과 같은 두 가지 예를 주어진 예를 들어R - 하나의 행렬을 다른 행렬로 요약

는 행렬 :

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

어떤 도움에 감사드립니다 :

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 

내가 좋아하는 뭔가를 생산하고 싶습니다.

답변

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

관련 문제