用R
所以我试图计算员工流动率。一开始看似简单的任务被证明有点挑战性(对我放松点,我是人力资源专业人士) 我可以找到列的计数和总和,但在计算中使用这些值时遇到了困难。我尝试过使用count、length和xtabs函数,但都没有成功。我想我可以把数据分成几个子集,但我不认为这是解决问题的方法 下面是我想要找到的用R,r,tableau-api,R,Tableau Api,所以我试图计算员工流动率。一开始看似简单的任务被证明有点挑战性(对我放松点,我是人力资源专业人士) 我可以找到列的计数和总和,但在计算中使用这些值时遇到了困难。我尝试过使用count、length和xtabs函数,但都没有成功。我想我可以把数据分成几个子集,但我不认为这是解决问题的方法 下面是我想要找到的 #Running_terminations <- 因此,在上述样本数据中,截至3月(2015年3月31日)的营业额如下所示: 运行\u终止=(1+1+1)/3=1 在职员工人数=(4+
#Running_terminations <-
因此,在上述样本数据中,截至3月(2015年3月31日)的营业额如下所示:
运行\u终止=(1+1+1)/3=1
在职员工人数=(4+3+4)/3=3.7
注意,只有“活动”状态才计入员工总数
年营业额=(1/3.7)*100=27%
一旦我掌握了基本知识,我希望能够按性别或类型,或同时按性别和类型计算营业额
非常感谢你读到这里
编辑:
如果有帮助的话,这就是我在Tableau中进行计算的方式
Running Terminations (YTD) = zn(WINDOW_AVG((([Termination])),-11,0))
Running Headcount (YTD) = zn(WINDOW_AVG((([Active])),-11,0))
Annual Turnover (YTD) = (ZN(([Running Terminations])/[Running Headcount]))*12
所以我首先计算了一个从年初至今的月周转率,然后乘以12
我读了一些关于计算运行平均值的书,我发现这里有一个用户建议使用以下函数
ma <- function(x,n=5){filter(x,rep(1/n,n), sides=2)}
ma您可以重新调整数据,以统计每月的活动次数和终止次数。代码如下:
library(reshape2)
txt <- "As.Of Status Gender Type
1/31/2015 Termination Male A
1/31/2015 Active Female A
1/31/2015 Active Male B
1/31/2015 Active Female B
1/31/2015 Active Male A
2/29/2015 Active Female A
2/29/2015 Active Male B
2/29/2015 Active Female B
2/29/2015 New_Hire Male A
2/29/2015 Termination Female A
3/31/2015 Active Male B
3/31/2015 Active Female B
3/31/2015 Active Male A
3/31/2015 Termination Female A
3/31/2015 Active Male B"
dataSet <- read.table(textConnection(txt), header=TRUE)
dataSet$As.Of <- as.Date(dataSet$As.Of, format="%m/%d/%y")
dataSet$As.Of.Month <- format(dataSet$As.Of, "%m")
dataSetAgg <- dcast(dataSet, As.Of.Month ~ Status, fun.aggregate = length, value.var="As.Of.Month")
Running_terminations <- sum(dataSetAgg$Termination)/nrow(dataSetAgg)
Running_headcount <- sum(dataSetAgg$Active)/nrow(dataSetAgg)
Annual_turnover <- (Running_terminations/Running_headcount)*100
library(重塑2)
txt使用您可以使用的基本功能
rslt <- table(dataSet$Status) / length(unique(dataSet$As.Of))
rslt你找到了cumsum
了吗?我没有,我一直在用库马尔的建议来解决这个问题。如何使用cumsum在截止日期之前获得全面的金额?非常感谢!我明天会试试这个,然后回复。当然。很乐意提供帮助。这非常有帮助,我能够将其应用到我的数据中。我现在的问题是,我希望能够将滚动员工人数与常规员工人数(按月)一起绘制,而您提出的解决方案只给了我一个要点。我读到过“妈,我会考虑这个问题,并提出一个新的问题,再次感谢!”
ma <- function(x,n=5){filter(x,rep(1/n,n), sides=2)}
library(reshape2)
txt <- "As.Of Status Gender Type
1/31/2015 Termination Male A
1/31/2015 Active Female A
1/31/2015 Active Male B
1/31/2015 Active Female B
1/31/2015 Active Male A
2/29/2015 Active Female A
2/29/2015 Active Male B
2/29/2015 Active Female B
2/29/2015 New_Hire Male A
2/29/2015 Termination Female A
3/31/2015 Active Male B
3/31/2015 Active Female B
3/31/2015 Active Male A
3/31/2015 Termination Female A
3/31/2015 Active Male B"
dataSet <- read.table(textConnection(txt), header=TRUE)
dataSet$As.Of <- as.Date(dataSet$As.Of, format="%m/%d/%y")
dataSet$As.Of.Month <- format(dataSet$As.Of, "%m")
dataSetAgg <- dcast(dataSet, As.Of.Month ~ Status, fun.aggregate = length, value.var="As.Of.Month")
Running_terminations <- sum(dataSetAgg$Termination)/nrow(dataSetAgg)
Running_headcount <- sum(dataSetAgg$Active)/nrow(dataSetAgg)
Annual_turnover <- (Running_terminations/Running_headcount)*100
rslt <- table(dataSet$Status) / length(unique(dataSet$As.Of))
rslt["Active"]
Active
3.666667
rslt["Termination"]
Termination
1
turnover <- 100 / rslt["Active"]