我是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)