我是R的新手,面临着奇怪的问题。
我试图为每个字符变量创建多个情节,以计数退出变量。
df_churn
gender geography exited
<chr> <chr> <fctr>
Female France Churn
Female Spain Remain
Female France Churn
Female France Remain
Female Spain Remain
Male Spain Churn
Male France Remain
Female Germany Churn
Male France Remain
Male France Remain甚至在我开始在group_by()中绘图之前,我就发现了lapply()的错误。
lapply(c("geography","gender"), FUN = function(feature){
df_churn %>%
group_by(feature, exited) %>%
count()
})如果使用的是select()而不是group_by(),那么它就能工作:
lapply(c("geography","gender"), FUN = function(feature){
df_churn %>%
select(feature, exited) %>%
head()
})
#------------------output-------------#
geography exited
<chr> <fctr>
France Churn
Spain Remain
France Churn
France Remain
Spain Remain
Spain Churn
gender exited
<chr> <fctr>
Female Churn
Female Remain
Female Churn
Female Remain
Female Remain
Male Churn如何为group_by()修复这个问题?
我无法理解apply的家庭工作,以及enquous,rlang/ functional programming在r中的工作,这会使重复工作更容易。相反,这一切有时真的让人沮丧,
也将感谢任何良好的学习链接,以及他们。
谢谢!!
发布于 2020-10-08 12:12:37
您的代码使用select而不是group_by的原因是select使用字符值,而不是group_by。
sym与!! :library(dplyr)
lapply(c("geography","gender"), FUN = function(feature){
df_churn %>%
group_by(!!sym(feature), exited) %>%
count()
}).data :lapply(c("geography","gender"), FUN = function(feature){
df_churn %>%
group_by(.data[[feature]], exited) %>%
count()
})across :lapply(c("geography","gender"), FUN = function(feature){
df_churn %>%
group_by(across(c(feature, "exited"))) %>%
count()
})get :lapply(c("geography","gender"), FUN = function(feature){
df_churn %>%
group_by(get(feature), exited) %>%
count()
})https://stackoverflow.com/questions/64262036
复制相似问题