dplyr中不推荐如何删除有关funs()的警告消息

dplyr中不推荐如何删除有关funs()的警告消息,r,dplyr,R,Dplyr,我使用此脚本时收到此警告消息 我想我必须使用列表而不是funs() 库(dplyr) 结果% 计数(种类)%>% 绑定行(汇总所有行(、FUN(如果是数字())和(、否则为“总计”)) 警告信息: funs()从dplyr 0.8.0开始就不推荐使用 非常感谢 您可以在suppressWarnings中包装您的呼叫,以防止发布警告(即“删除”警告)。但是,这样做不会解决最初导致警告的任何潜在问题 更好的做法是注意警告并尝试修复代码,这样就根本不会生成警告。其他几个人已经发布了答案,正是这样做的

我使用此脚本时收到此警告消息
我想我必须使用列表而不是funs()

库(dplyr)
结果%
计数(种类)%>%
绑定行(汇总所有行(、FUN(如果是数字())和(、否则为“总计”))
警告信息:
funs()
从dplyr 0.8.0开始就不推荐使用


非常感谢

您可以在
suppressWarnings
中包装您的呼叫,以防止发布警告(即“删除”警告)。但是,这样做不会解决最初导致警告的任何潜在问题

更好的做法是注意警告并尝试修复代码,这样就根本不会生成警告。其他几个人已经发布了答案,正是这样做的

suppressWarnings(
result <- iris %>% 
    count(Species) %>% 
    bind_rows(summarise_all(., funs(if(is.numeric(.)) sum(.) else "Total"))))
suppress警告(
结果%
计数(种类)%>%
绑定行(汇总所有行(、FUN(如果是数字())和(、否则为“总计”))

是当前汇总/变异多个列的方式(因为
dplyr
1.0版)。我们还使用
purr
风格的匿名函数和
~

iris %>% count(Species) %>%
  bind_rows(summarize(., across(everything(), ~if(is.numeric(.)) sum(.) else "Total")))
#      Species   n
# 1     setosa  50
# 2 versicolor  50
# 3  virginica  50
# 4      Total 150
试试这个:

library(dplyr)

result <- iris %>% 
    count(Species) %>% 
    bind_rows(summarise_all(., list(function(x) if(is.numeric(x)) sum(x) else "Total")))
库(dplyr)
结果%
计数(种类)%>%
绑定行(汇总所有行(、列表(函数(x)如果(是数字(x))和(x)否则为“总计”))

谢谢,但如果我认为最好还是用listPerfect!谢谢!我会接受答案!谢谢,它很管用!
library(dplyr)

result <- iris %>% 
    count(Species) %>% 
    bind_rows(summarise_all(., list(function(x) if(is.numeric(x)) sum(x) else "Total")))