r - 对数据帧列表进行矢量化索引 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
显然 for 循环不是一个聪明的主意,所以我试图寻找方法来矢量化该过程。有没有人有什么建议?
解决方案
lapply(list_matrices, function(mat) mat[mat[,1] != mat[,2],])
names
然后,您可以根据需要使用该功能命名您的列表。
推荐阅读
- jinja2 - Jinja2 转义对象传递给 templare.render
- oracle - Flyway:创建视图为 WITH(公用表表达式 CTE)
- wix - 无法从 WiX 创建的 MSI 卸载程序
- laravel - Laravel 迁移修饰符 ->after('column') 不起作用
- javascript - 避免区分大小写字符的优雅方法?(最好在 JavaScript 中)
- excel - 使用 VBA XMLHTTP getElementsByClassName() 从 Twitter 获取信息时出现错误 438
- angular - 在函数上调用订阅时无法读取未定义的属性“订阅”
- powershell-4.0 - 从 AD 导入变量以映射驱动器
- c# - 为 RoleManager 和 UserManager 创建实例以进行单元测试?
- python - 由 findFundamentalMat() 和 stereoCalibrate() 计算的不同基本矩阵