如何用r中的向量替换数据帧中的字段名



我有两个数据帧,我正试图使用一个数据帧中的一个字符向量作为另一个数据框的字段名。下面是我尝试做的一个例子。

df1 <- data.frame(a1 = c(1,2,3,4), a2 = c(5,6,7,8))
df2 <- data.frame(ID = c("a1","a2"), name = c("one","two"))

我想用字符向量df2$name替换df1的字段名称以获得:

one two
1   5
2   6
3   7
4   8

有什么解决方案吗?

我们可以使用match来获取'df1'的列名和'df2'的'ID'列之间匹配元素的索引,并使用该索引从'df2''中获取相应的'name'并将其分配给'df1'的列名

names(df1) <- df2$name[match(names(df1), df2$ID)]

最新更新