再次感谢您让我成为社区的一员。我非常感谢它,我学到了很多东西。
我想聚合两个列作为行(按组)的方式并保留其他列。transmute_at 在均值方面做得很好,但放弃了其他列。
另外,我看到这是一种已弃用的功能,对如何使用 dplyr 1.0 有任何想法吗?
这是代码
prod<-iris
prod_avg <- iris %>% filter(!is.na(Species) | Species != "") %>%
group_by(Species) %>%
transmute_at(
c("Sepal.Length","Sepal.Width"), ~ mean(.x, na.rm=T))
Run Code Online (Sandbox Code Playgroud)
而不是transmute_at使用mutate_at
library(dplyr)
iris %>%
filter(!is.na(Species) | Species != "") %>%
#There are no NA or empty values in Species though
group_by(Species) %>%
mutate_at(vars(c("Sepal.Length","Sepal.Width")), ~ mean(.x, na.rm=TRUE))
Run Code Online (Sandbox Code Playgroud)
在dplyr1.0.0 中使用across
iris %>%
filter(!is.na(Species) | Species != "") %>%
group_by(Species) %>%
mutate(across(c(Sepal.Length,Sepal.Width), ~ mean(.x, na.rm=TRUE)))
Run Code Online (Sandbox Code Playgroud)