Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:检查两行是否使用参考矩阵连接_R_Matrix_Machine Learning_Svd - Fatal编程技术网

R:检查两行是否使用参考矩阵连接

R:检查两行是否使用参考矩阵连接,r,matrix,machine-learning,svd,R,Matrix,Machine Learning,Svd,我有[A,B,C,D]的ID和下面的参考矩阵,它告诉我们哪些ID是连接的。如果它们在单元格中有1或-1,那么我们可以说它们是连接的,因此从这个矩阵我们可以说“A”与“B”相连,“C”同样,所有连接的ID都在下面的矩阵中表示 #A B C D A 0 1-1 0 b10101 C-100 D 0 1 0 0 现在,我有了第二个矩阵,其中包含ID作为所有ID子集的行。此矩阵的列不是ID。 #X1 X2 X3 A 1.51.60.7 D 0.9 1.3 1.4 C 0.7 1.1 1.8 现在我想找到

我有[A,B,C,D]的ID和下面的参考矩阵,它告诉我们哪些ID是连接的。如果它们在单元格中有1或-1,那么我们可以说它们是连接的,因此从这个矩阵我们可以说“A”与“B”相连,“C”同样,所有连接的ID都在下面的矩阵中表示
#A B C D
A 0 1-1 0
b10101
C-100
D 0 1 0 0

现在,我有了第二个矩阵,其中包含ID作为所有ID子集的行。此矩阵的列不是ID。
#X1 X2 X3
A 1.51.60.7
D 0.9 1.3 1.4
C 0.7 1.1 1.8

现在我想找到第二个矩阵中的哪些行是使用第一个参考矩阵连接的。我希望创建另一个矩阵,该矩阵中有第二个矩阵的行,但应该知道它们是否连接到第一个矩阵。我希望得到如下矩阵作为我的结果。
#A D C
零零一
D 0 0 0
C 1 0 0


请建议我如何在R中实现这一点?

我在行名上使用了匹配。让我知道这是否适合你/如果你有任何问题

matrix1 <- matrix(c(0, 1, -1, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, 1, 0, 0), ncol = 4, byrow = TRUE, dimnames = list(LETTERS[1:4], LETTERS[1:4]))
matrix1
   A B  C D
A  0 1 -1 0
B  1 0  0 1
C -1 0  0 0
D  0 1  0 0

matrix2 <- matrix(c(1.5, 1.6, 0.7, 0.9, 1.3, 1.4, 0.7, 1.1, 1.8), ncol = 3, byrow = TRUE, dimnames = list(c("A","D","C"), paste0("X",1:3)))
matrix2
   X1  X2  X3
A 1.5 1.6 0.7
D 0.9 1.3 1.4
C 0.7 1.1 1.8

matched_rows <- match(rownames(matrix2), rownames(matrix1))
matched_cols <- match(rownames(matrix2), colnames(matrix1))
matrix3 <- abs(matrix1[matched_rows, matched_cols])
matrix3
  A D C
A 0 0 1
D 0 0 0
C 1 0 0

matrix1按预期完美运行。非常感谢你。