【发布时间】:2019-11-08 11:50:27
【问题描述】:
我有一个数据框,我过滤、删除和添加一些列,然后我想重命名所有列,全部使用管道 (%>%)。
但是,我不明白如何获取当前的 colnames 向量(在%>% 内)并将其替换为另一个向量?如果我不删除列,这似乎很容易,但是如何在管道链中“更新”colnames 的向量?
library(dplyr)
library(tidyr)
data("mtcars")
mtcars %>%
filter(disp < 200) %>%
dplyr::select(-c('mpg','cyl', "disp")) %>%
mutate(Type = 2) %>%
# rename_at(vars(names(df), # how to rename the columns???
# function(x) paste(names(df), "new", sep = "_"))) %>%
head(2)
我得到了什么:
hp drat wt qsec vs am gear carb Type
1 110 3.9 2.620 16.46 0 1 4 4 2
2 110 3.9 2.875 17.02 0 1 4 4 2
我的期望(更改了列名)
hp_new drat_new wt_new qsec_new vs_new am_new gear_new carb_new Type_new
1 110 3.9 2.620 16.46 0 1 4 4 2
2 110 3.9 2.875 17.02 0 1 4 4 2
【问题讨论】: