r - 从数据框中删除所有包含相同元素的行,即使元素在 R 中的顺序不同
问题描述
这是我的数据:
mymat <- structure(c(3, 6, 9, 9, 1, 4, 1, 5, 9, 6, 6, 4, 1, 4), .Dim = c(7L, 2L))
有些行是重复的,其他几行包含相同的元素,尽管它们的顺序不同。我希望删除所有包含相同元素的行,无论这些元素是相同的(重复的行)还是不同的顺序。这将只保留c(3, 5)
.
我在这里和这里检查了以前的问题。但是,我的要求是删除所有这些行,而不是留下一个这样的行。
我的问题也与删除所有重复行的问题不同,因为我不仅要查找重复的行,还要查找包含相同元素集但排序不同的行。例如, rowsc(6, 9)
和c(9, 6)
都应该被删除,因为它们都包含相同的元素集。
我寻找不使用 for 循环的解决方案,因为我的真实数据很大并且 for 循环可能很慢。
注意:我的完整数据有 40k 行和 2 列。
解决方案
您可以按行对数据进行排序并使用duplicated
-
tmp <- t(apply(mymat, 1, sort))
tmp[!(duplicated(tmp) | duplicated(tmp, fromLast = TRUE)), , drop = FALSE]
# [,1] [,2]
#[1,] 3 5
推荐阅读
- azure-ad-b2c - 用户从 Azure AD B2C 删除通知或回调?
- python - 如何根据分类变量划分数据框?
- python - 我正在尝试在 python 中读取一个 url,但它给出了一个不完整的读取
- c# - 对象引用未设置为 Unity 对象的实例
- java - 如何使用 Kotlin DSL 创建 Fat JAR?
- python - conda 在前缀路径中将软件包安装到 env
- sql - 如何从 SQL 中的日期/时间字段中删除时间戳?
- vue.js - 如何向 vue.js 中不是父级的另一个组件发出事件?
- excel - 如何将单元格数据添加到 HTTP 请求并移动到下一个单元格
- oauth - 使用现有 AAD 令牌为 Kusto 请求令牌