我想得到一天的总销售量的数据,但在一天的“结束”。
例如,我有以下数据:
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我想要一张表,上面显示当天结束时售出的物品总数+前几天的情况。我包含了一个虚拟列,因为我的数据有额外的列,我不需要这些列。
例如:
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谢谢!!
发布于 2019-06-05 18:13:00
您可以使用group_by()和mutate() (或count())来计算每天和每项,对于计算,我认为函数cumsum()将被占用(累积和)。
由于变量Facility不是数字,所以我添加了变量Value = 1,但是使用count()是一种更好的方法(结果与注释行相同)。
然后,只需使用前面的结果创建一个left_join(),您就可以找到所需的内容。
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 3https://stackoverflow.com/questions/56465705
复制相似问题