在 R 中重命名列名

Renaming Column Names in R

我想从我的数据框中重命名我的列,这些列具有重复的列名,其中我的列是 a、b 和 c。

 df>
 a  b  c  a  b  c
 1  6 11  1  4  4
 2  7 12  2  8  12
 3  8 13  3  7  7
 4  9 14  5  7  11
 5 10 15  44 2  13

我可以通过将列 1:3 取出作为 df1 来更改列名,但是如果我有 1000 个列名要更改,有没有办法循环它?

df1 <- df[,1:3]
colnames(df1) <- paste(colnames(df1), "test1" , sep = '_')

如果您知道相同的 3 个列名称以相同的顺序重复,您可以在此处使用 repeach 选项:

namenums <- rep(1:(ncol(df1)/3), each=3)
colnames(df1) <- paste0(colnames(df1), "_test", namenums)
df1

  a_test1 b_test1 c_test1 a_test2 b_test2 c_test2
1       1       6      11       1       6      11
2       2       7      12       2       7      12
3       3       8      13       3       8      13
4       4       9      14       4       9      14
5       5      10      15       5      10      15

数据:

df <- data.frame(a=c(1:5), b=c(6:10), c=c(11:15), a=c(1:5), b=c(6:10), c=c(11:15))
names(df) <- c("a", "b", "c", "a", "b", "c")

我们可以使用make.unique

names(df) <- make.unique(names(df))