2017-09-21 44 views
1

假设我有一个简单的数据帧:重命名列

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,BC)?

在我的原始数据df2是更大的方式,我有多个数据集如df,所以为了解决方案的工作,代码应尽可能通用。提前致谢!

回答

1

我们可以使用match功能在这里的新名称映射到旧的:

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

Demo