2014-05-22 77 views
0

我有一個小矩陣:如何使用另一個基於列/行名稱的矩陣替換矩陣中的值?

SMALL<-matrix(c(1:9),3, 3) 
colnames(SMALL)<-c("25","36","48") 
rownames(SMALL)<-c("18","25","48") 

的樣子:

25 36 48 
18 1 4 7 
25 2 5 8 
48 3 6 9 

而且大矩陣:

LARGE<-matrix(0,4, 4) 
colnames(LARGE)<-c("12","25","36","48") 
rownames(LARGE)<-c("18","25","38","48") 

的樣子:

12 25 36 48 
18 0 0 0 0 
25 0 0 0 0 
38 0 0 0 0 
48 0 0 0 0 

我想取代 基於列/行名稱的大矩陣中的值來自小矩陣中的值。

尋找這樣的結果:

12 25 36 48 
18 0 1 4 7 
25 0 2 5 8 
38 0 0 0 0 
48 0 3 6 9 

任何想法?

回答

5

假設有在LARGE的匹配的SMALL每欄和行名:

i <- match(rownames(SMALL), rownames(LARGE)) 
j <- match(colnames(SMALL), colnames(LARGE)) 

LARGE[i,j] <- SMALL 
# 12 25 36 48 
#18 0 1 4 7 
#25 0 2 5 8 
#38 0 0 0 0 
#48 0 3 6 9 
相關問題