与purrr:map一起使用count/mutate组合
样本数据:与purrr:map一起使用count/mutate组合,r,purrr,R,Purrr,样本数据: ï..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, S
ï..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))
}
如何解决这个问题,并让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))
hrname%
计数(.data[[var]],sort=T)%>%
变异(!!var:=fct_重新排序(因子(.data[[var]]),n))
}
$State
函数(df,var){
df%>%
计数(.data[[var]],sort=T)%>%
变异(!!var:=fct_重新排序(因子(.data[[var]]),n))
根据您提供的数据,您可以尝试purr
的imap
imap(mtcars, ~count(tibble(.x), !!.y := factor(.x)))
作为功能
foo <- function(x, y) count(tibble(x), !!y := factor(x))
imap(mtcars, foo)
根据您提供的数据,您可以尝试
purr
的imap
imap(mtcars, ~count(tibble(.x), !!.y := factor(.x)))
作为功能
foo <- function(x, y) count(tibble(x), !!y := factor(x))
imap(mtcars, foo)
您可以添加一些示例数据吗?
HRdata
是列表吗?此外,您可以在count
中进行转换,例如mtcars%>%count(cyl=factor(cyl))%%>%scape()
也可以检查HRdata\u factor\u count()
函数是否在map()中指定了两个输入变量df
和var
call you仅提供1,即.x
我添加了示例数据您可以添加一些示例数据吗?HRdata
是列表吗?此外,您可以在count
内进行转换,例如mtcars%>%count(cyl=因子(cyl))%%>%skillip()
还可以检查HRdata\u factor\u count()
函数在map()中指定两个输入变量,df
和var
call you only supply 1,即.x
我已经添加了示例数据。我创建的函数有什么方法可以实现吗?我使用map2进行了尝试,并更新了上面的查询。没有。你的函数不会以这种方式运行。请参阅Ray的注释我的提示,.x是一个向量,而不是一个数据帧。嘿,你帮了我很多忙,把我指回到了Ray的评论。我意识到我不需要使用我编写的函数。最后,我在我的数据帧上使用了一个普通映射和一个表函数,它工作得很好。我仍在试图找出如何在同一时间fct_重新排序,但我认为这与管道有关。有什么方法可以使用我创建的函数吗?我使用了它ng map2并更新了我上面的查询否。你的函数不会那样工作。请看Ray的注释我的提示,.x是一个向量而不是一个data.frame。嘿,你帮了我很多忙,让我回到Ray的注释。我意识到我不需要使用我编写的函数。最后,我在我的dataframe上使用了一个带有表函数的普通映射它工作得很好。我仍在试图找出如何在同一时间fct_重新排序,但我认为这与管道有关。