【发布时间】:2021-02-11 17:27:38
【问题描述】:
我有一个如下所示的数据框:
company eh
1 A 1
2 A 3
3 B 2
4 C 2
5 C 1
6 D 3
7 E 1
8 F 3
9 F 1
如您所见,我有重复的公司 A、C 和 F 行。这是因为某些公司可以在 'eh' 列中同时采用值 1、2 和 3。我希望每个公司只有一行,所以我运行以下代码:
df <- distinct(df, company, .keep_all = TRUE)
结果:
company eh
1 A 1
2 B 2
3 C 2
4 D 3
5 E 1
6 F 3
但是,这会从“eh”列中删除随机行。但我想要的 'eh' 列是保持值 1 超过 2 和 3。换句话说,如果公司的 'eh' 值同时采用 1 和 3,我宁愿保留值为 1 的行。所以我想得到这样的结果(删除第 2、4 和 8 行):
company eh
1 A 1
2 B 2
3 C 1
4 D 3
5 E 1
6 F 1
我该怎么做?
【问题讨论】:
-
取决于您如何决定要删除哪些行 - 它总是在“eh”列中具有较高值的行吗?还是总是第二次出现,从上到下阅读?
-
Dubukay:我总是想保留“eh”取 1 的行。在这种情况下,您也可以说我想保留“eh”值最低的行。我不在乎是否保持 2 超过 3。只要它始终保持 1 超过其他
标签: r duplicates distinct