如何使用dplyr按索引位置重命名列

219 阅读1分钟

你可以使用以下语法,用dplyr按索引位置重命名数据框架的一列。

方法1:按索引重命名一列

#rename column in index position 1
df %>%
  rename(new_name1 = 1)

方法2:按索引重命名多列

#rename column in index positions 1, 2, and 3
df %>%
  rename(new_name1 = 1,
         new_name2 = 2,
         new_name3 = 3)

下面的例子展示了如何在实践中使用这种语法。

例1:通过索引重命名一列

下面的代码显示了如何使用**rename()**函数来按索引位置重命名一列:

library(dplyr)

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(12, 14, 19, 24, 24, 22, 30, 9),
                 assists=c(4, 6, 6, 8, 3, 7, 8, 11))

#rename column in index position 1
df <- df %>%
        rename(team_new = 1)

#view updated data frame
df

  team_new points assists
1        A     12       4
2        A     14       6
3        A     19       6
4        A     24       8
5        B     24       3
6        B     22       7
7        B     30       8
8        B      9      11

注意,第一列的名字从team改为team_new,其他列的名字都没有变化。

例2:按索引重命名多列

下面的代码显示了如何使用rename()函数来按索引位置重命名数据框中的多列:

library(dplyr)

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(12, 14, 19, 24, 24, 22, 30, 9),
                 assists=c(4, 6, 6, 8, 3, 7, 8, 11))

#rename column in index position 1
df<- df %>%
       rename(team_new = 1,
              assists_new = 3)

#view updated data frame
df

  team_new points assists_new
1        A     12           4
2        A     14           6
3        A     19           6
4        A     24           8
5        B     24           3
6        B     22           7
7        B     30           8
8        B      9          11

索引位置1和3的列名改变了,而索引位置2的列名保持不变。

其他资源

下面的教程解释了如何在dplyr中执行其他常用函数:

如何使用dplyr按索引选择列
如何使用dplyr删除行
如何在dplyr中用0替换NA