对数据帧列表 R 的索引进行矢量化



我在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函数命名列表。

最新更新