Как я могу использовать оператор pipe для перенаправления функции замены, такой как colnames()<-
?
Вот что я пытаюсь сделать:
library(dplyr)
averages_df <-
group_by(mtcars, cyl) %>%
summarise(mean(disp), mean(hp))
colnames(averages_df) <- c("cyl", "disp_mean", "hp_mean")
averages_df
# Source: local data frame [3 x 3]
#
# cyl disp_mean hp_mean
# 1 4 105.1364 82.63636
# 2 6 183.3143 122.28571
# 3 8 353.1000 209.21429
Но в идеале это было бы что-то вроде:
averages_df <-
group_by(mtcars, cyl) %>%
summarise(mean(disp), mean(hp)) %>%
add_colnames(c("cyl", "disp_mean", "hp_mean"))
Есть ли способ сделать это, не создавая каждый раз специальную функцию?
Ответы здесь - это начало, но не совсем мой вопрос: Сцепление арифметических операторов в dplyr
summarise
-group_by(mtcars, cyl) %>% summarise(disp_mean=mean(disp), hp_mean=mean(hp))
Хотя я не понимаю, насколько использованиеcolnames
так затруднительно. Все ли мелочи нужно делать в dplyr? - person thelatemail   schedule 23.01.2015dplyr
естьrename()
функция. Или да, делай то, что сказал @thelatemail. - person Rich Scriven   schedule 23.01.2015setNames
, как вgroup_by(mtcars, cyl) %>% summarise(mean(disp), mean(hp)) %>% setNames(., c("cyl", "disp_mean", "hp_mean"))
- person David Arenburg   schedule 23.01.2015"names<-"(., ...
, а потом сказал себе подожди минутку ... - person David Arenburg   schedule 23.01.2015dplyr
.rename()
иsetNames
решают проблему. Но есть и другие функции замены, которые делают что-то вродеfoo(x) <- y
. Просто интересно, есть ли у dplyr способ их передать. - person Alex Coppock   schedule 23.01.2015