使用对象重命名 R 中的变量

Using an object to rename a variable in R

在我的一个函数中,我需要更改数据集中变量的名称。我创建了那个新变量名并将其保存在一个名为 name 的对象中。当我使用对象 name 重命名变量时,R 将变量的名称命名为“name”,而不是对象 name 的内容。我怎样才能让它使用对象 name 而不是单词“name”?

new_name <- paste("New","Name")
#tidyverse approach
library(dplyr)

state_df <- as.data.frame(state.x77)

new_data <- state_df %>% 
  rename(name=Population)

head(new_data)

基础 R 方法

colnames(new_data)[colnames(new_data)=="Population"] <- name

head(new_data)

您可以使用{{new_name}}

new_name <- paste("New","Name")


as.data.frame(state.x77) %>% 
  rename({{new_name}}:=Population) %>% 
  head()

           New Name Income Illiteracy Life Exp Murder HS Grad Frost   Area
Alabama        3615   3624        2.1    69.05   15.1    41.3    20  50708
Alaska          365   6315        1.5    69.31   11.3    66.7   152 566432
Arizona        2212   4530        1.8    70.55    7.8    58.1    15 113417
Arkansas       2110   3378        1.9    70.66   10.1    39.9    65  51945
California    21198   5114        1.1    71.71   10.3    62.6    20 156361
Colorado       2541   4884        0.7    72.06    6.8    63.9   166 103766

或者,您可以这样做

state = as.data.frame(state.x77)
colnames(state)[which(colnames(state)=="Population")] <- new_name
head(state)

           New Name Income Illiteracy Life Exp Murder HS Grad Frost   Area
Alabama        3615   3624        2.1    69.05   15.1    41.3    20  50708
Alaska          365   6315        1.5    69.31   11.3    66.7   152 566432
Arizona        2212   4530        1.8    70.55    7.8    58.1    15 113417
Arkansas       2110   3378        1.9    70.66   10.1    39.9    65  51945
California    21198   5114        1.1    71.71   10.3    62.6    20 156361
Colorado       2541   4884        0.7    72.06    6.8    63.9   166 103766