我有一个小矩阵:
SMALL<-matrix(c(1:9),3, 3)
colnames(SMALL)<-c("25","36","48")
rownames(SMALL)<-c("18","25","48")
Run Code Online (Sandbox Code Playgroud)
好像:
25 36 48
18 1 4 7
25 2 5 8
48 3 6 9
Run Code Online (Sandbox Code Playgroud)
还有一个大矩阵:
LARGE<-matrix(0,4, 4)
colnames(LARGE)<-c("12","25","36","48")
rownames(LARGE)<-c("18","25","38","48")
Run Code Online (Sandbox Code Playgroud)
好像:
12 25 36 48
18 0 0 0 0
25 0 0 0 0
38 0 0 0 0
48 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
我想用基于列/行名称的小矩阵替换大矩阵中的值.
寻找这个结果:
12 25 36 48
18 0 1 4 7
25 0 2 5 8
38 0 0 0 0
48 0 3 6 9
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
假设SMALL
in的每个col和row名称都匹配LARGE
:
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
Run Code Online (Sandbox Code Playgroud)