r - 如何使用R识别双胞胎,然后随机选择并删除一个?
问题描述
我有一个包含一些双胞胎和三胞胎的数据集。对于每组双胞胎或三胞胎,我需要随机选择一个以保留在数据集中。此信息编码在两列中,FamilyID 和 FamilyOrder。双胞胎和三胞胎共享 FamilyID 和 FamilyOrder。非双胞胎兄弟姐妹共享一个 FamilyID,但具有不同的 FamilyOrder 值。
FamilyID FamilyOrder y
1 1 45
1 2 33
2 1 12
3 1 76
3 2 15
3 2 59
3 2 22
4 1 56
4 1 21
因此,在此示例代码中,FamilyID 3 包含一个非双胞胎(编码为 1)和一组三胞胎(编码为 2),而 FamilyID 4 有一对双胞胎。
我希望输出类似于:
FamilyID FamilyOrder y
1 1 45
1 2 33
2 1 12
3 1 76
3 2 22
4 1 56
它保留了正常的兄弟姐妹,但每个双胞胎和三胞胎都删除了一个。
解决方案
你可以很容易地做到这一点dplyr
...
library(dplyr)
df %>%
group_by(FamilyID, FamilyOrder) %>%
sample_n(1)
FamilyID FamilyOrder y
1 1 1 45
2 1 2 33
3 2 1 12
4 3 1 76
5 3 2 22
6 4 1 56
推荐阅读
- javascript - iOS 通用链接在 Twitter 应用程序中不起作用,但 android 应用程序链接有效
- php - 在 PHP 中使用 jquery ajax 提交条件表单元素
- node.js - 如何使用 Jest 和 Enzyme 在构造函数中测试组件参数
- python - PySpark 将空字符串转换为 null 并在 Parquet 中写入
- r - 使用 R 列出和访问 owncloud 公共文件夹中的文件
- regex - 正则表达式在 WSO2 中无法正常工作,但在 Java 正则表达式测试器上给出了正确的响应
- php - MySQL通配符过滤特殊字符使用LIKE
- python - ImportError:无法导入名称_overlapped
- typescript - 工厂函数返回的对象的函数中缺少返回类型
- c# - 加入数据集和 sql server 表