我在R中列出了100多个大质量矩阵。
我将使用一个名为list_matrices
的小示例列表对象
list(structure(c(1, 2, 3, 4, 2, 3, 3, 4), .Dim = c(4L, 2L), .Dimnames = list(
NULL, c("x", "y"))), structure(c(1, 2, 3, 4, 2, 2, 3, 4), .Dim = c(4L,
2L), .Dimnames = list(NULL, c("a", "b"))))
矩阵 1 应为对象x
,矩阵 2 应为对象a
我正在尝试索引列表中的每个矩阵,以便如果行中第 1 列的值和第 2 列的值匹配,则该行将从矩阵中索引出来,该矩阵仍作为自己的矩阵存储在list_matrices
对象中。基本上我想要这样的东西
mat_tf<- <-mat[(mat[,1]!=mat[,2],]
但是在列表中的每个矩阵上
我还想在每个矩阵对象上添加一个附加_tf
的新名称,以便当我调用list_matrices[[1]]
时,我将返回一个名为x_tf
的矩阵
显然,对于循环不是一个聪明的主意,所以我正在尝试寻找矢量化该过程的方法。有人有什么建议吗?
lapply(list_matrices, function(mat) mat[mat[,1] != mat[,2],])
然后,您可以根据需要使用names
函数命名列表。