【发布时间】:2023-04-05 16:33:01
【问题描述】:
我自己做了如下函数:
emp_term_var <- function(data, colName, year = "2015") {
# Terminations by year and variable in df
colName <- enquo(colName)
term_test <- data %>%
filter(year(DateofTermination) == year) %>%
group_by(UQ(colName)) %>%
count(UQ(colName)) %>%
clean_names()
return(term_test)
}
我有一个包含多个列的 df,例如部门、州、职位等。当我想使用我编写的函数时,我将不带引号的列名称如下:
emp_term_var(data = df, colName = Department, year = "2015")
返回:
# A tibble: 5 x 2
# Groups: department [5]
department n
<chr> <int>
1 Admin Offices 1
2 IT/IS 4
3 Production 15
4 Sales 1
5 Software Engineering 2
>
如何映射多个列?如果我尝试
columns <- c(Department, State)
R 不允许我这样做,因为它将这些标识为对象而不是列名。如何让 R 知道这些是要存储在对象列中的列名,以便我可以以这种形式将其传递给映射:
map(colnames, ~ emp_term_var(df, colName = .x, year = "2015"))
【问题讨论】:
标签: r tidyverse purrr tidyeval