我在R中有一个数据框架,其中有几列,例如:help1 | help2 | help3……我有一个excel文件与以下列:
- old_name new_name
- help1 help_org
- help2 help_fam
- help3 help_friend
我想让R遍历excel文件,并根据new_name列重命名DF colnames
help_org | help_fam | help_friend
names(df) <- ref_df$new_name[match(names(df), ref_df$old_name)]
df
# help_org help_fam help_friend
#1 -0.56047565 1.7150650 1.2240818
#2 -0.23017749 0.4609162 0.3598138
#3 1.55870831 -1.2650612 0.4007715
#4 0.07050839 -0.6868529 0.1106827
#5 0.12928774 -0.4456620 -0.5558411
其中ref_df
为excel文件中的数据,该文件有两列(old_name
和new_name
)。
ref_df <- readr::read_excel('excel_data.xlsx')
和df
是您更改列名的原始数据。
在本例中,我使用的数据如下:
set.seed(123)
df <- data.frame(help1 = rnorm(5), help2 = rnorm(5), help3 = rnorm(5))
ref_df <- structure(list(old_name = c("help1", "help2", "help3"),
new_name = c("help_org", "help_fam", "help_friend")),
class = "data.frame", row.names = c(NA, -3L))