如何使用 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()函数重命名数据框中的team和point列:
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()函数重命名数据框中的team和point列:
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 与多个条件一起使用