sql - 基于比较两列删除R中的重复值
问题描述
我有这样的数据:
COL_1:名字
COL_2:姓氏
COL_1 COL_2
Michel Jackson
Meg Ryan
Megan Fox
Gerard Butler
Simon Baker
Ryan Meg
Fox Megan
Baker Simon
Jackson Amy
Simon Baker
Baker Simon
Simon Richard
Baker Richard
Meg Ryan
Ryan Meg
Meg Meg
我想要清除比较两列的重复名称的输出,例如Meg Ryan与Ryan Meg相同。因此,我在输出中只需要Meg Ryan或Ryan Meg的一条记录。
预期的输出是
COL_1 COL_2
Michel Jackson
Meg Ryan
Megan Fox
Gerard Butler
Simon Baker
Jackson Amy
Simon Richard
Baker Richard
Meg Meg
PS:我有几百万条记录。
解决方案
您可以使用apply
df[!duplicated(t(apply(df,1,sort))),]
Col1 Col2
1 Michel Jackson
2 Meg Ryan
3 Megan Fox
4 Gerard Butler
5 Simon Baker
9 Jackson Amy
12 Simon Richard
13 Baker Richard
16 Meg Meg
推荐阅读
- javascript - 如何在NodeJS中将任意长度的数字(BigInt或Int)表示为Buffer
- sql-server - SQL Server 2012:获取触发触发器的 SQL 代码,没有 DBCC INPUTBUFFER 或 sys.dm_exec_input_buffer
- spring-boot - 返回有关用户创建端点的 OAuth 令牌信息
- c# - WPF:ItemSource 未显示任何项目
- laravel - 在 vue.js 中将图像处理为 rest api 响应的最佳方法
- python - 能够安装 Flask-bcrypt 但无法在我的项目中导入 Flask bcrypt
- sql - SQL Server 2016。克隆/复制同一服务器上的数据库到现有的不同数据库保留相同的文件
- python - 无法使用 python 访问 sqlite3 数据库文件
- php - 如何将变量从 html 表单传递到 php 脚本?
- php - 用于匹配 URL 模式的 PHP 正则表达式