Еще раз спасибо за то, что позволили мне стать частью сообщества. Я очень ценю это и многому научился.
Я хотел бы объединить два столбца как средство строк (по группе) и сохранить другие столбцы. 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))
1 ответ
Вместо 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))
В dplyr
1.0.0 используйте across
iris %>%
filter(!is.na(Species) | Species != "") %>%
group_by(Species) %>%
mutate(across(c(Sepal.Length,Sepal.Width), ~ mean(.x, na.rm=TRUE)))
Похожие вопросы
Новые вопросы
r
R - это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, предоставьте минимальные и воспроизводимые примеры вместе с желаемым результатом. Используйте dput () для данных и укажите все небазовые пакеты с вызовами library (). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. По вопросам, связанным со статистикой, используйте https://stats.stackexchange.com.