R语言中如何使用paste()函数重命名数据框列
问题说明
现有测试数据框:
df <- data.frame (var1 = c(12,56,23), var2 = c(12,12,34))
需要用paste()函数重命名第一列,以下尝试代码无法生效:
x <- "USD" df %>% rename(paste(x,"varNEW") = var1)
原因
dplyr::rename()默认要求等号左侧为固定字面量列名,不支持直接在等号左侧写表达式生成动态列名,动态命名场景需要使用专用语法。
实现方法
dplyr 管道操作写法
用:=替换原代码中的=作为动态赋值符号,同时用!!将paste()拼接出的字符串解析为列名:library(dplyr) x <- "USD" # sep参数可自定义分隔符:默认是空格,sep=""为无分隔拼接,sep="_"为下划线分隔 df <- df %>% rename(!!paste(x, "varNEW", sep = "_") := var1)执行后第一列名为
USD_varNEW,需要无分隔拼接时把sep设为""即可得到USDvarNEW。base R 原生写法
直接按列索引修改列名,不需要特殊语法:x <- "USD" names(df)[1] <- paste(x, "varNEW", sep = "_")
内容的提问来源于stack exchange,提问作者user18937485
相关产品推荐
相关产品推荐

