我有一个基本上像这样的数据框(包含数据):
t <- data.frame(x1 = 1:5, x2 = 1:5, stingsAsFactors = FALSE)
我还有另一个数据框,其中包含原始列名,并且每个列都有一个替换
n <- data.frame(abb = c("x1", "x2"), erf = c("XX1", "XX2"), stringsAsFactors = FALSE)
我想做的是根据数据帧n中的规范重命名数据帧t中的列。我的问题是我不知道如何使用map做到这一点。为什么以下错误:
map2_dfr(n$abb, n$erf, function(x, y) rename(t, !!y := x))
答案 0 :(得分:2)
我们可以使用rename_at
library(dplyr)
t %>%
rename_at(n$abb, ~ n$erf)
答案 1 :(得分:2)
这是使用match
在基数R中的单线,
names(t) <- n$erf[match(names(t), n$abb)]
t
# XX1 XX2
#1 1 1
#2 2 2
#3 3 3
#4 4 4
#5 5 5