【问题标题】:R - Calculating a Running Total of Team Size by Location for each MonthR - 计算每个月按地点划分的团队规模的运行总计
【发布时间】:2016-11-29 09:34:48
【问题描述】:

我目前正在开展一个研究员工流动率的项目。到目前为止,我已经创建了一个类似于以下示例的表:

library(tidyverse)

Data <- data.frame(Month = c("Jan", "Feb", "March", "Jan", "Feb", "March"),
                   Location = c("Sheffield", "Sheffield", "Sheffield","London", "London", "London"), 
                   Joiners = c(7,3,8,4,9,1),
                   Leavers = c(1,5,9,3,2,5)) %>%
        mutate(Net_Change = Joiners - Leavers)

我想通过根据位置和月份(按顺序)获取 Net_Change 列的总和来计算团队规模。例如,伦敦 2 月的团队规模应为 8 (1+7),3 月的团队规模应为 4 (1+7-4)。

我曾尝试使用 dplyr 'summarise' 函数执行此操作,但没有成功。如果“tidyverse”方法适用,那就太好了。

非常感谢您在这方面的帮助!

【问题讨论】:

  • 你好像在找cumsum()

标签: r dplyr calculated-columns


【解决方案1】:
Data %>% group_by(Location) %>% mutate(Team_size = cumsum(Net_Change))

#    Month  Location Joiners Leavers Net_Change Team_size
#   (fctr)    (fctr)   (dbl)   (dbl)      (dbl)     (dbl)
#1    Jan Sheffield       7       1          6         6
#2    Feb Sheffield       3       5         -2         4
#3  March Sheffield       8       9         -1         3
#4    Jan    London       4       3          1         1
#5    Feb    London       9       2          7         8
#6  March    London       1       5         -4         4

【讨论】:

  • 谢谢,太好了。以前从未见过该功能,因此很有帮助。为此,按月对行进行排序很重要?
  • @George 抱歉回复晚了..不,不需要订购。输出按数据的顺序显示。我没有执行任何明确的排序。
  • 我已经完成了,但由于我还是 StackOverflow 的新手,我需要 15 的声望才能公开投票。对不起!
  • 欣赏它.. 这只是为了让新人知道这个http://stackoverflow.com/help/someone-answers。谢谢bdw
猜你喜欢
  • 2016-11-16
  • 2019-06-02
  • 1970-01-01
  • 2020-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多