我是R语言编程的新手。

我有一个数字mat的矩阵,以及一个矩阵matlist的列表。我想检查矩阵mat是否与matlist的任何元素匹配(即相同)。我尝试了%in%方法,但这并没有给我希望的输出。

这就像我的代码。

mat <- rbind(c(0,1),
             c(1,0))
mat2 <- rbind(c(1,1),
              c(1,0))
matlist <- vector(mode="list", 2)
matlist[[1]] <- mat
matlist[[2]] <- mat2


如果再尝试mat %in% matlist,我将得到:
FALSE FALSE FALSE FALSE

我正在寻找这样的表达式,其结果将为TRUE

这似乎应该很简单,但我找不到答案!

最佳答案

您可以尝试类似:

sapply(matlist,function(x) identical(x,mat))或@jbaums在下面提到:sapply(matlist,identical,mat)

或构建一个自定义函数来检查任何矩阵列表中的任何矩阵:

matrix_is_in <- function(my_mat, my_mat_list) {
      sapply(my_matlist, function(x) identical(x, my_mat))
}


然后尝试一下:

matrix_is_in(mat,matlist)

09-17 14:47