r - 使用管道更改特定列名

标签 r dplyr

这个问题在这里已经有了答案:





How to dplyr rename a column, by column index?

(4 个回答)


6 个月前关闭。




我想使用 dplyr 的管道更改数据框的几个特定列名。下面是一个这样的例子——

library(dplyr)
head(mtcars)
现在假设,我想将第 2 列和第 3 列名称更改为 "a""b"分别。简单地说,我可以这样做
colnames(mtcars)[2] <- "a"
colnames(mtcars)[3] <- "b"
但是我想用 pipe 来做并在一行中以提高可读性。
任何建议我该怎么做?
非常感谢您的时间。

最佳答案

tidyverse ,我们可以使用 rename_with

library(dplyr)
mtcars <- mtcars %>%
       rename_with(~ c('a', 'b'), 2:3)

names(mtcars)
#[1] "mpg"  "a"    "b"    "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear" "carb"

我们可以使用 replacenames<-
head(mtcars) %>% 
     `names<-`(replace(names(.), 2:3, c('a', 'b')))
-输出
#                   mpg a   b  hp drat    wt  qsec vs am gear carb
#Mazda RX4         21.0 6 160 110 3.90 2.620 16.46  0  1    4    4
#Mazda RX4 Wag     21.0 6 160 110 3.90 2.875 17.02  0  1    4    4
#Datsun 710        22.8 4 108  93 3.85 2.320 18.61  1  1    4    1
#Hornet 4 Drive    21.4 6 258 110 3.08 3.215 19.44  1  0    3    1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02  0  0    3    2
#Valiant           18.1 6 225 105 2.76 3.460 20.22  1  0    3    1

关于r - 使用管道更改特定列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67440940/

相关文章:

r - 当您具有colnames的字符向量时,如何不使用select()dplyr选择列?

r - 删除取值小于 n 的列?

r - 用dplyr总结一个因子的计数

r - 在 r markdown 循环中使用 flextable 不生成表格

r - 在函数运行期间使用参数值作为 R 中的变量名

r - 如何检查大型数据框中是否存在一组列?

r - 如何向仅修改某些列的数据框添加一行

r - 从两个不同的数据帧绘制 R 图

javascript - 为力导向网络中的每个链接指定颜色,networkD3::forceNetwork()

r - 在 dplyr 中将 starts_with 与 group_by 结合使用