我有一个小矩阵:
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有什么想法吗?
发布于 2014-05-22 15:27:37
假设在SMALL中LARGE中的每个col和行名称都匹配
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 9https://stackoverflow.com/questions/23810823
复制相似问题