【发布时间】:2021-05-04 14:43:32
【问题描述】:
样本数据:
ï..Employee_Name PositionID Position State Zip
1: Adinolfi, Wilson K 19 Production Technician I MA 1960
2: Ait Sidi, Karthikeyan 27 Sr. DBA MA 2148
3: Akinkuolie, Sarah 20 Production Technician II MA 1810
4: Alagbe,Trina 19 Production Technician I MA 1886
5: Anderson, Carol 19 Production Technician I MA 2169
---
307: Woodson, Jason 20 Production Technician II MA 1810
308: Ybarra, Catherine 19 Production Technician I MA 2458
309: Zamora, Jennifer 6 CIO MA 2067
310: Zhou, Julia 9 Data Analyst MA 2148
311: Zima, Colleen 19 Production Technician I MA 1730
我编写了自己的函数来计算数据框中变量的观察实例,然后将它们转换为因子:
HRdata_factor_count <- function(df, var) {
df %>%
count(.data[[var]], sort = T) %>%
mutate(!!var := fct_reorder(factor(.data[[var]]), n))
}
我想将它与 Purrr 包中的地图功能一起使用,但出现以下错误:
> map(HRdata, ~HRdata_factor_count(.x))
Error in UseMethod("count") :
no applicable method for 'count' applied to an object of class "character"
我将如何解决此问题并让 map 返回一个列表,其中包含我的 df 中每个变量的实例计数?
我试过了,但输出很奇怪
HRnames <- names(HRdata)
map2(HRdata, HRnames, ~HRdata_factor_count, df = .x, var =.y)
$Position
function(df, var) {
df %>%
count(.data[[var]], sort = T) %>%
mutate(!!var := fct_reorder(factor(.data[[var]]), n))
}
<bytecode: 0x000001e2ce372f60>
$State
function(df, var) {
df %>%
count(.data[[var]], sort = T) %>%
mutate(!!var := fct_reorder(factor(.data[[var]]), n))
【问题讨论】:
-
你能添加一些示例数据吗?
HRdata是列表吗?此外,您可以在count内转换,如mtcars %>% count(cyl = factor(cyl)) %>% glimpse() -
还要检查您的
HRdata_factor_count()函数是否指定了 2 个输入变量,df和var。在您的map()电话中,您只提供 1,即.x -
我已添加示例数据