首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于组的多点过滤

基于组的多点过滤
EN

Stack Overflow用户
提问于 2019-09-10 18:20:43
回答 1查看 750关注 0票数 2

我有如下所述的数据集:

代码语言:javascript
复制
df=data.frame(Supplier_id=c("1","2","7","7","7","4","5","8","12","7"), Supplier=c("Tian","Yan","Goldy","Goldy","Goldy","Amy","Lauren","Cassy","Shaan","Goldy"),Date=c("1/17/2019","4/30/2019","11/29/2018","11/29/2018","11/29/2018","5/21/2018","5/23/2018","5/24/2018","6/15/2018","6/20/2018"),Buyer=c("Unclassified","Unclassified","Kelly","Kelly","Kelly","Kelly","Amanda","Echo","Shao","Shao"))

df$Supplier_id=as.numeric(as.character(df$Supplier_id))

因此,df如下所示:

代码语言:javascript
复制
| Supplier_id | Supplier | Date       | Buyer        |
|-------------|----------|------------|--------------|
| 1           | Tian     | 1/17/2019  | Unclassified |
| 2           | Yan      | 4/30/2019  | Unclassified |
| 7           | Goldy    | 11/29/2018 | Kelly        |
| 7           | Goldy    | 11/29/2018 | Kelly        |
| 7           | Goldy    | 11/29/2018 | Kelly        |
| 4           | Amy      | 5/21/2018  | Kelly        |
| 5           | Lauren   | 5/23/2018  | Amanda       |
| 8           | Cassy    | 5/24/2018  | Echo         |
| 12          | Shaan    | 6/15/2018  | Shao         |
| 7           | Goldy    | 6/20/2018  | Shao         |

现在,我希望筛选出对每个唯一买家只发生一次的Supplier_id。例如,在上面的数据集中,Supplier_id '1‘和'2’属于‘未分类’买方,但是由于它们有不同的in,所以我不希望它们出现在我的最终输出中。然而,当我们看买家‘凯利’,它有两个supplier_ids,'7‘和'4',其中,'7’发生了3次,'4‘只有一次。因此,输出表应该具有supplier_id='7‘的记录。分组应以“买方”为基础。因此,需要注意的是,由于supplier_id '7‘同时存在于'Kelly’和'Shao',但是对于这两个买家来说,它应该是不同的分组,而不是一起考虑。

预期产出应是:

代码语言:javascript
复制
| Supplier_id | Supplier |       Date | Buyer_id |
|-------------|:--------:|-----------:|----------|
| 7           |   Goldy  | 11/29/2018 | Kelly    |
| 7           |   Goldy  | 11/29/2018 | Kelly    |
| 7           |   Goldy  | 11/29/2018 | Kelly    |

我试过使用group_by和filter,但这不起作用,因为每个买家都会有不同的supplier_id _id,我也尝试过使用重复的,但不确定如何为每个买家分组supplier_id。

代码语言:javascript
复制
df <-df %>% group_by(Buyer) %>% filter(Supplier_id>1)

还有这个

代码语言:javascript
复制
df2=df[duplicated(df[1]) | duplicated(df[1], fromLast=TRUE),]

编辑:原始数据集有许多这样的实例,每个买方都有n个不同的supplier_id。获得所需输出的其他方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-10 18:23:26

我觉得你需要-

代码语言:javascript
复制
df %>% group_by(Supplier_id, Buyer) %>% filter(n() > 1)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57876331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档