制作函数时保留列名

Preserve column name when making function

我有一个如下所示的数据框:

  ï..Employee_Name EmpID MarriedID MaritalStatusID GenderID EmpStatusID DeptID PerfScoreID FromDiversityJobFairID
1:   Adinolfi, Wilson  K 10026         0               0        1           1      5           4                      0
2: Ait Sidi, Karthikeyan 10084         1               1        1           5      3           3                      0
3:     Akinkuolie, Sarah 10196         1               1        0           5      5           3                      0
4:          Alagbe,Trina 10088         1               1        0           1      5           3                      0
5:       Anderson, Carol 10069         0               2        0           5      5           3                      0
6:       Anderson, Linda 10002         0               0        0           1      5           4                      0

我写了一个计数函数:

HRdata_factor_count <- function(df, var) {
  df %>% 
    count(df[[var]], sort = T) %>% 
    rename(Variable = `df[[var]]`) %>% 
    mutate(Variable = factor(Variable)) %>% 
    mutate(Variable = fct_reorder(Variable, n ))
}

它输出“变量”而不是给 var 参数的变量名:

  Variable   n
1:        0 187
2:        1 124

我想保留我告诉函数要计数的变量的名称,而不必在函数体内重命名它。

你可以试试这个功能:

library(dplyr)

HRdata_factor_count <- function(df, var) {
  df %>% 
    count(.data[[var]], sort = T) %>% 
    mutate(!!var := factor(.data[[var]])) 
}