我在尝试使用多个变量来计算员工流动率时遇到了一些问题。
请参阅下面的示例数据。
var hook = new Function(codeStr);
// Executing
hook();
我使用下面的代码重塑了我的数据以计算每月的活动数量和终止数量。
As Of Status Gender Type Assignment
1/31/2015 Termination Male A Fulltime
1/31/2015 Active Female A Parttime
1/31/2015 Active Male B Fulltime
1/31/2015 Active Female B Parttime
1/31/2015 Active Male A Fulltime
2/29/2015 Active Female A Parttime
2/29/2015 Active Male B Fulltime
2/29/2015 Active Female B Parttime
2/29/2015 New Hire Male A Fulltime
2/29/2015 Termination Female A Parttime
3/31/2015 Active Male B Fulltime
3/31/2015 Active Female B Parttime
3/31/2015 Active Male A Fulltime
3/31/2015 Termination Female A Parttime
3/31/2015 Active Male B Fulltime
使用这个我能够将数据集转换成看起来像这样的东西。
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")
我可以通过
计算整体运行周转率As Of Active Terminations New Hires
1/2015 4 1 0
2/2015 3 1 1
3/2015 4 1 0
以下是Running_termination,Running_headcount和Annual_turnover的含义说明。
Running_terminations <- sum(dataSetAgg$Termination)/nrow(dataSetAgg)
Running_headcount <- sum(dataSetAgg$Active)/nrow(dataSetAgg)
Annual_turnover <- (Running_terminations/Running_headcount)*12
应该是(第1个月的终止)+(第2个月的终止)...... /月数
#Running_terminations <-
应该是(第1个月的人数)+(第2个月的人数)...... /月数
#Running_headcount <-
(运行终止/运行人数)* 12
我想做的是通过指定变量计算Annual_turnover
例如,
#Annual_turnover <-
等...
有相对简单的方法吗?
非常感谢提前。
答案 0 :(得分:1)
您可以使用sum(condition)
来计算条件= TRUE的行:
状态=&#39;终止&#39;
的行数sum(dataSet$Status=='Termination')
3
状态=&#39;终止&#39;和性别=&#39;男性&#39;:
sum(dataSet$Status=='Termination' & dataSet$Gender=='Male')
1
您还可以使用length()
来计算项目数:
(唯一)月数
length(unique(dataSet$As.Of.Month))
3