在数据帧列表R

时间:2019-01-24 19:33:50

标签: r list matrix vectorization

我在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循环不是一个明智的主意,因此我正在尝试寻找向量化过程的方法。有没有人有什么建议?

1 个答案:

答案 0 :(得分:1)

lapply(list_matrices, function(mat) mat[mat[,1] != mat[,2],])

然后您可以根据需要使用names函数来命名列表。