如何使用 dplyr 重命名多个列


您可以使用 R 中dplyr包中的以下函数来重命名数据框中的多个列:

方法一:使用rename()

 df %>% rename(new1 = old1, new2 = old2)

方法2:使用rename_with()

 new <- c(' new1 ', ' new2 ')
old <- c(' old1 ', ' old2 ')

df %>% rename_with(~ new, all_of(old))

两种方法产生相同的结果。

以下示例展示了如何在 R 中使用以下数据框来实际使用这些方法:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 dots=c(22, 34, 30, 12, 18),
                 assists=c(7, 9, 9, 12, 14))

#view data frame
df

  team points assists
1 to 22 7
2 B 34 9
3 C 30 9
4 D 12 12
5 E 18 14

示例 1:使用 rename() 重命名多个列

以下代码显示如何使用rename()函数重命名数据框中的teampoint列:

 library (dplyr)

#rename team and points columns
df2 <- df %>% rename(team_new = team, points_new = points)

#view updated data frame
df2

  team_new points_new assists
1 to 22 7
2 B 34 9
3 C 30 9
4 D 12 12
5 E 18 14

球队得分栏被重新命名,而助攻栏保持不变。

示例 2:使用 rename_with() 重命名多个列

以下代码显示如何使用rename_with()函数重命名数据框中的teampoint列:

 library (dplyr)

#define new names
new <- c(' team_new ', ' points_new ')

#define old names to replace
old <- c(' team ', ' points ')

#rename old names with new names
df2 <- df %>% rename_with(~ new, all_of(old))

#view updated data frame
df2

  team_new points_new assists
1 to 22 7
2 B 34 9
3 C 30 9
4 D 12 12
5 E 18 14

球队得分栏被重新命名,而助攻栏保持不变。

请注意,当您有一长串要替换的列名时,此方法可能更容易使用。

其他资源

以下教程解释了如何使用 dplyr 执行其他常见任务:

如何使用 dplyr 按名称选择列
如何使用 dplyr 按索引选择列
如何在 dplyr 中将 select_if 与多个条件一起使用

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注