首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于两列生成组的运行计数

基于两列生成组的运行计数
EN

Stack Overflow用户
提问于 2019-06-05 17:55:49
回答 1查看 274关注 0票数 1

我想得到一天的总销售量的数据,但在一天的“结束”。

例如,我有以下数据:

代码语言:javascript
运行
复制
Item    Day Facility
Item_A  Day1    B
Item_B  Day1    A
Item_B  Day1    B
Item_C  Day2    B
Item_A  Day2    A
Item_C  Day2    C
Item_B  Day2    A
Item_B  Day2    A
Item_C  Day3    A

我想要一张表,上面显示当天结束时售出的物品总数+前几天的情况。我包含了一个虚拟列,因为我的数据有额外的列,我不需要这些列。

例如:

代码语言:javascript
运行
复制
Item    Day Facility    Item_Total_Accumulative
Item_A  Day1    B   1
Item_B  Day1    A   2
Item_B  Day1    B   2
Item_C  Day2    B   2
Item_A  Day2    A   2
Item_C  Day2    C   2
Item_B  Day2    A   4
Item_B  Day2    A   4
Item_C  Day3    A   3

谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 18:13:00

您可以使用group_by()mutate() (或count())来计算每天和每项,对于计算,我认为函数cumsum()将被占用(累积和)。

由于变量Facility不是数字,所以我添加了变量Value = 1,但是使用count()是一种更好的方法(结果与注释行相同)。

然后,只需使用前面的结果创建一个left_join(),您就可以找到所需的内容。

代码语言:javascript
运行
复制
library(dplyr)

 df %>%
  count(Item, Day) %>%
  group_by(Item) %>%
  mutate(Item_Total_Accumulative = cumsum(n)) %>% 
  select(-n) %>% 
  left_join(df,.)

#> Joining, by = c("Item", "Day")
#>     Item  Day Facility Item_Total_Accumulative
#> 1 Item_A Day1        B                       1
#> 2 Item_B Day1        A                       2
#> 3 Item_B Day1        B                       2
#> 4 Item_C Day2        B                       2
#> 5 Item_A Day2        A                       2
#> 6 Item_C Day2        C                       2
#> 7 Item_B Day2        A                       4
#> 8 Item_B Day2        A                       4
#> 9 Item_C Day3        A                       3
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56465705

复制
相关文章

相似问题

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