我在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
的矩阵< / p>
显然for循环不是一个明智的主意,因此我正在尝试寻找向量化过程的方法。有没有人有什么建议?
答案 0 :(得分:1)
lapply(list_matrices, function(mat) mat[mat[,1] != mat[,2],])
然后您可以根据需要使用names
函数来命名列表。