gpt4 book ai didi

r - 基于多列的具有独特案例的子集

转载 作者:行者123 更新时间:2023-12-03 07:25:11 25 4
gpt4 key购买 nike

我想对数据框进行子集化,以仅包含具有三列唯一组合的行。我的情况类似于this中介绍的情况问题,但我也想保留数据中的其他列。这是我的例子:

> df
v1 v2 v3 v4 v5
1 7 1 A 100 98
2 7 2 A 98 97
3 8 1 C NA 80
4 8 1 C 78 75
5 8 1 C 50 62
6 9 3 C 75 75

请求的输出将是这样的,我正在寻找仅基于 v1、v2 和 v3 的独特案例:

> df.new
v1 v2 v3 v4 v5
1 7 1 A 100 98
2 7 2 A 98 97
3 8 1 C NA 80
6 9 3 C 75 75

如果我可以恢复非唯一行,那就太好了:

> df.dupes
v1 v2 v3 v4 v5
3 8 1 C NA 80
4 8 1 C 78 75
5 8 1 C 50 62

我看到了一个有关如何在 sql 中执行此操作的相关问题( here ),但我无法在 R 中得到这个。我确信它很简单,但弄乱 unique() 和 subset() 还没有硕果累累。

最佳答案

您可以使用duplicate()函数来查找唯一的组合:

> df[!duplicated(df[1:3]),]
v1 v2 v3 v4 v5
1 7 1 A 100 98
2 7 2 A 98 97
3 8 1 C NA 80
6 9 3 C 75 75

要仅获取重复项,您可以双向检查:

> df[duplicated(df[1:3]) | duplicated(df[1:3], fromLast=TRUE),]
v1 v2 v3 v4 v5
3 8 1 C NA 80
4 8 1 C 78 75
5 8 1 C 50 62

关于r - 基于多列的具有独特案例的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com