如何在R语言中修改包含$符号的数据框列名?
去除数据框列名中的$符号
下面提供几种实用解决方案,覆盖批量处理和单独修改场景:
批量替换所有列名中的$符号
直接用gsub函数全局替换列名里的$(注意$是正则特殊字符,需用\\$转义):
colnames(EV) <- gsub("\\$", "", colnames(EV))
示例:原列名DocID$123会变成DocID123,User$Info会变成UserInfo,一次性处理所有列。
单独修改指定列的列名
如果只需要修改某一列(比如第3列),直接定位列索引修改即可,不会影响其他列:
# 先查看第3列的原列名 colnames(EV)[3] # 自动去掉该列名里的$符号 colnames(EV)[3] <- gsub("\\$", "", colnames(EV)[3]) # 或者直接指定新名称 colnames(EV)[3] <- "DocID123"
你之前遇到的批量修改问题,应该是误使用了匹配前缀的替换逻辑,单独指定列索引只会修改对应位置的列名。
用dplyr工具修改(可选)
若习惯tidyverse生态,可使用rename_with批量处理,或rename单独修改:
library(dplyr) # 批量去除所有列名的$ EV <- EV %>% rename_with(~ gsub("\\$", "", .x)) # 单独修改第3列名为DocID123 EV <- EV %>% rename(DocID123 = 3)
内容的提问来源于stack exchange,提问作者Ryan Murtfeldt
相关产品推荐
相关产品推荐

