gpt4 book ai didi

r - 如何相对于另一个矩阵重新排序一个矩阵的行?

转载 作者:行者123 更新时间:2023-12-01 16:11:58 26 4
gpt4 key购买 nike

我有两个维度不同的大矩阵 AB。我想根据矩阵 A 的行对矩阵 B 的行进行排序。并将值为 0 的行添加到矩阵 B,如果该行不存在于 B 而存在于 A

这是可重现的例子和预期的输出:

A<-matrix(c(1:40), ncol=8)
rownames(A)<-c("B", "A", "C", "D", "E")

> A
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
B 1 6 11 16 21 26 31 36
A 2 7 12 17 22 27 32 37
C 3 8 13 18 23 28 33 38
D 4 9 14 19 24 29 34 39
E 5 10 15 20 25 30 35 40

> B<-matrix(c(100:108),ncol=3)
rownames(B)<-c("A", "E", "C")

> B
[,1] [,2] [,3]
A 100 103 106
E 101 104 107
C 102 105 108

这是预期的输出:

>B
[,1] [,2] [,3]
B 0 0 0
A 100 103 106
C 102 105 108
D 0 0 0
E 101 104 107
>

有人能帮我在 R 中实现这个吗?

最佳答案

另一种方法

> temp <- A[,seq(ncol(B))]*0            
> temp[rownames(B), ] <- B
> (B <- temp)
# [,1] [,2] [,3]
#B 0 0 0
#A 100 103 106
#C 102 105 108
#D 0 0 0
#E 101 104 107

关于r - 如何相对于另一个矩阵重新排序一个矩阵的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24083578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com