使用 r 转换并保留原始列

Sta*_*hus 1 r dplyr

再次感谢您让我成为社区的一员。我非常感谢它,我学到了很多东西。

我想聚合两个列作为行(按组)的方式并保留其他列。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)

Ron*_*hah 6

而不是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)