You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用dplyr单步提取仅买入从未卖出的商品?

单步实现方案

可以通过分组筛选逻辑一步完成需求,不需要拆分出两个中间表再执行关联操作,实现代码如下:

library(dplyr)

df <- data.frame("Date"    = paste0("Date", 1:5), 
                 "Product" = c("A","B","B","C","D"),
                 "Action"  = c("b", "b", "s", "b", "b"))

# 保留所有符合条件的完整交易记录
df %>% 
  group_by(Product) %>% 
  filter(!any(Action == "s")) %>% 
  ungroup()

# 若仅需要输出去重的商品名(和你原有分步实现的输出结果完全一致)
df %>% 
  group_by(Product) %>% 
  filter(!any(Action == "s")) %>% 
  ungroup() %>% 
  distinct(Product)

逻辑说明

  • 按照Product字段分组,每一组对应同一个商品的所有买卖记录
  • 分组内用any(Action == "s")判断该商品是否存在卖出记录,加!取反后仅保留从未有卖出记录的商品
  • 两种实现的结果完全匹配你原有分步anti_join的输出效果

内容的提问来源于stack exchange,提问作者problème0123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:24:02