使用多个选定变量的R的员工流动率

时间:2016-03-15 21:17:29

标签: r

我在尝试使用多个变量来计算员工流动率时遇到了一些问题。

请参阅下面的示例数据。

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 <-

等...

有相对简单的方法吗?

非常感谢提前。

1 个答案:

答案 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