如何使用 dplyr 链中数据的第一行更改列名称

Ale*_*der 8 r dplyr

我尝试使用数据的第一行重命名列名。

使用第一行数据作为 r 中的列名

将 %>% 与 colnames()<- 等替换函数一起使用

我反驳的问题是在不破坏列的情况下执行此过程,dplyr pipeline因为我想在重命名列后继续做一些其他的事情。

这篇文章中有关于rename函数 dplyr::rename 的评论,如果您只是(重新)命名许多列中的一些(它需要同时编写旧名称和新名称;请参阅@Richard Scriven 的答案)

但是,在我的真实数据中,列数不是固定的,因此我需要使用类似的方法来选择列 select(X9:max(ncol(.)))

df <- data.frame(replicate(10,sample(100,2,rep=TRUE)))


  X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 77 40 45 98 75 17  5 33 53  94
2 43 67 82 42 63 90 14 65  4  98

library(dplyr)
df1 <- df %>%
  select(X8,X9,X10)%>%
  ....
Run Code Online (Sandbox Code Playgroud)

选择和重命名列后的预期输出

  33 53  94
1 65  4  98
Run Code Online (Sandbox Code Playgroud)

jay*_*.sf 0

set.seed(502)
df <- data.frame(replicate(10, sample(100, 2, rep=TRUE)))

> df
  X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 79  6 82 23 36 58 95 30 60  42
2 89 77  9 13 79 97  1 10 48  66
Run Code Online (Sandbox Code Playgroud)

在基础 R 中我们可以做

df1 <- "colnames<-"(df[2 , x <- paste0("X", 8:10)], df[1, x])

> df1
  30 60 42
2 10 48 66
Run Code Online (Sandbox Code Playgroud)