【发布时间】:2019-06-18 15:05:48
【问题描述】:
我在 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 的矩阵
显然 for 循环不是一个聪明的主意,所以我正在尝试寻找方法来矢量化该过程。有没有人有什么建议?
【问题讨论】:
-
对于帖子的第二部分,您可以随意命名列表元素,但是当您使用
list_matrices[[1]]提取列表元素时,您将只得到一个矩阵,它不会没有名字。 -
好收获。那很有意思。我现在也注意到了,但是在我的真实矩阵列表中,我实际上可以使用单个矩阵的名称来索引它们。有什么不同的想法吗?
-
没有什么不同,您可以使用名称来提取列表元素,我只是澄清一下,当您提取列表元素时,无论是使用名称还是位置,您都会得到一个名称不存在的矩阵不要跟着它走
标签: r list matrix vectorization