根据引用键重命名数据框中的列

Renaming columns in dataframe according to reference key

假设我有一个简单的数据框:

df <- data.frame("one"= c(1:5), "two" = c(6:10), "three" =c(7:11))

我想重命名我的列名称,以便它们与参考相匹配 让我的参考如下:

df2 <- data.frame("Name" = c("A", "B", "C"), "Oldname" = c("one", "two", "three"))

如果 df 中的列名与 df2 中的列名匹配(这样 df 中的列名是:A、B、C),我如何才能将它们替换为 df2 中的列名?

在我的原始数据中,df2 更大,并且我有多个数据集,例如 df,因此为了使解决方案起作用,代码应尽可能通用。提前致谢!

我们可以在这里使用match函数将新名字映射到旧名字上:

names(df) <- df2$Name[match(names(df), df2$Oldname)]
names(df)
[1] "A" "B" "C"

Demo