R 使用%>;%使用替换函数,如colnames()<-

R 使用%>;%使用替换函数,如colnames()<-,r,dplyr,magrittr,R,Dplyr,Magrittr,如何使用管道操作符将管道插入替换函数,如colnames()您可以在dplyr中使用colnames,有几种不同的方法来重命名列 一种是使用rename()函数。在本例中,您需要在summary()创建的名称后面打勾,因为它们是表达式 group_by(mtcars, cyl) %>% summarise(mean(disp), mean(hp)) %>% rename(disp_mean = `mean(disp)`, hp_mean = `mean(hp)`) #

如何使用管道操作符将管道插入替换函数,如
colnames()您可以在
dplyr
中使用
colnames,有几种不同的方法来重命名列

一种是使用
rename()
函数。在本例中,您需要在
summary()
创建的名称后面打勾,因为它们是表达式

group_by(mtcars, cyl) %>%
    summarise(mean(disp), mean(hp)) %>%
    rename(disp_mean = `mean(disp)`, hp_mean = `mean(hp)`)
#   cyl disp_mean   hp_mean
# 1   4  105.1364  82.63636
# 2   6  183.3143 122.28571
# 3   8  353.1000 209.21429
您也可以使用
select()
。这稍微容易一点,因为我们可以使用列号,这样就不需要乱用回号了

group_by(mtcars, cyl) %>%
    summarise(mean(disp), mean(hp)) %>%
    select(1, disp_mean = 2, hp_mean = 3)
但是对于这个例子,最好的方法是按照@thelatemail在评论中提到的方法,即返回一步,在
summary()
中命名列


我们可以使用
summary_at
.funs
参数和dplyr为汇总变量添加后缀,如下代码所示

库(dplyr)
#用dplyr总结_at
mtcars%>%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
总结(
.cols=c(“disp”、“hp”),
.funs=c(平均值=“平均值”)
)
#一个tibble:3×3
#气缸压力平均值hp平均值
#           
# 1     4  105.1364  82.63636
# 2     6  183.3143 122.28571
# 3     8  353.1000 209.21429
此外,我们可以通过多种方式设置列名

#使用magrittr设置#u名称
mtcars%>%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
总结(平均值(显示)、平均值(hp))%>%
magrittr::设置名称(c(“cyl”、“disp_mean”、“hp_mean”))
#用purrr设置_名称
mtcars%>%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
总结(平均值(显示)、平均值(hp))%>%
purrr::设置名称(c(“cyl”、“disp\u mean”、“hp\u mean”))
#具有统计信息的集合名
mtcars%>%
组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
总结(平均值(显示)、平均值(hp))%>%
统计:集合名(c(“cyl”、“disp_mean”、“hp_mean”))
#一个tibble:3×3
#气缸压力平均值hp平均值
#           
# 1     4  105.1364  82.63636
# 2     6  183.3143 122.28571
# 3     8  353.1000 209.21429

您可以将您的输入命名为
摘要
-
分组依据(mtcars,cyl)%%>%summary(disp_mean=mean(disp),hp_mean=mean(hp))
尽管我不知道使用
colnames有多麻烦。是否所有的小事情都必须在dplyr中完成?我相信在
dplyr
中有一个
rename()
函数。或者是的,按照@thelatemail说的做。或者只使用
setNames
就像
groupby(mtcars,cyl)%%>%总结(mean(disp),mean(hp))%%>%setNames(,c(“cyl”,“disp_意思”,“hp_意思”)
@davidernburg-既然我两分钟前刚刚指出了这一点,为什么我没有想到呢?@thelatemail我正在写
“真漂亮。我假设
`foo
group_by(mtcars, cyl) %>%
  summarise(mean(disp), mean(hp)) %>%
  `colnames<-`(c("cyl", "disp_mean", "hp_mean"))
  # or
  # `names<-`(c("cyl", "disp_mean", "hp_mean"))
  # setNames(., c("cyl", "disp_mean", "hp_mean")) 

#   cyl disp_mean   hp_mean
# 1   4  105.1364  82.63636
# 2   6  183.3143 122.28571
# 3   8  353.1000 209.21429
library(magrittr)
group_by(mtcars, cyl) %>%
  summarise(mean(disp), mean(hp)) %>%
  set_colnames(c("cyl", "disp_mean", "hp_mean"))
group_by(mtcars, cyl) %>%
    summarise(mean(disp), mean(hp)) %>%
    rename(disp_mean = `mean(disp)`, hp_mean = `mean(hp)`)
#   cyl disp_mean   hp_mean
# 1   4  105.1364  82.63636
# 2   6  183.3143 122.28571
# 3   8  353.1000 209.21429
group_by(mtcars, cyl) %>%
    summarise(mean(disp), mean(hp)) %>%
    select(1, disp_mean = 2, hp_mean = 3)
group_by(mtcars, cyl) %>%
    summarise(disp_mean = mean(disp), hp_mean = mean(hp))