R 如何在筛选器内部使用%中的%

R 如何在筛选器内部使用%中的%,r,dplyr,R,Dplyr,我有两个数据集:按周销售数据集和畅销数据集。我正在尝试制作一张每周销售数据图表,以显示我在最畅销商品中排名前十的商品。我正在使用%in%处理过滤器部件。我只想将数据过滤到10个产品ID sales_by_week %>% filter(product_id %in% c(filter(top_sellers, rank <= 10) %>% # HOW DO I DO THIS LINE? select(product_id))) %>% group_by

我有两个数据集:按周销售数据集和畅销数据集。我正在尝试制作一张每周销售数据图表,以显示我在最畅销商品中排名前十的商品。我正在使用%in%处理过滤器部件。我只想将数据过滤到10个产品ID

sales_by_week %>%
  filter(product_id %in% c(filter(top_sellers, rank <= 10) %>%   # HOW DO I DO THIS LINE?
  select(product_id))) %>%
  group_by(week) %>%
  summarize(sales_qty = sum(sales_qty)) %>%
  ggplot(aes(x = week)) +
  geom_line(aes(y = sales_qty, color = product_id))
使用上面的代码,我得到filter_impl.data中的错误,dots:comparison 4仅适用于原子类型和列表类型

我的数据是这样的


如果没有一个示例数据框,这很难完全做到,但我认为这应该大致可行

top = top_sellers[top_sellers$rank <= 10, ]
sales_by_week = sales_by_week[sales_by_week$product_id %in% top$product_id, ]
尝试此操作时,strsplitgsub[^0-9]中出现错误,top$product\u id:缺少参数拆分,没有默认的Sales\u by\u week$product\u id实际上是字符数据。我展示的示例数据只有值1457,但大多数行都有字母和数字。
filter(product_id %in% top$product_id)