如何让R语言dplyr的总销售额计算结果包含product id与product type?
解决方法
要让结果同时显示product_id和product_type,只需在group_by()中同时包含这两个字段即可。你之前仅按product_type分组,会把同类型下的所有产品ID合并,导致结果丢失product_id信息。
修改后的代码如下:
products %>% filter(str_detect(product_type, regex("pizza", ignore_case = TRUE))) %>% inner_join(get_transactions(), by = "product_id") %>% group_by(product_id, product_type) %>% # 同时按产品ID和类型分组 summarize(total_sales = sum(sales_value)) %>% arrange(desc(total_sales))
说明
- 当
group_by()同时包含product_id和product_type时,分组逻辑会以每个产品ID+产品类型的组合作为独立分组,summarize()后这两个字段会保留在结果中。 - 若你的数据中每个
product_id对应唯一的product_type(这是常见的业务逻辑),这种分组方式不会导致重复计算,能精准展示每个披萨产品的ID、类型和对应总销售额。
内容的提问来源于stack exchange,提问作者Issam K
相关产品推荐
相关产品推荐

