你可以使用R中dplyr包的以下函数来重命名数据框中的多列。
方法1:使用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'),
points=c(22, 34, 30, 12, 18),
assists=c(7, 9, 9, 12, 14))
#view data frame
df
team points assists
1 A 22 7
2 B 34 9
3 C 30 9
4 D 12 12
5 E 18 14
例1:使用rename()重命名多个列
下面的代码显示了如何使用rename()函数来重命名数据框中的球队和积分列:
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 A 22 7
2 B 34 9
3 C 30 9
4 D 12 12
5 E 18 14
球队和积分列已经被重新命名,而助攻列则保持不变。
例2:使用rename_with()重命名多个列
下面的代码显示了如何使用rename_with()函数来重命名数据框中的球队和得分列:
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 A 22 7
2 B 34 9
3 C 30 9
4 D 12 12
5 E 18 14
球队和得分列已经被重新命名,而助攻列则保持不变。
请注意,当你有一长串你想替换的列名时,这种方法可能更容易使用。
其他资源
下面的教程解释了如何使用dplyr执行其他常见任务: