R中tibble使用rename重命名列后新名称恢复旧名问题
问题原因
dplyr里的rename()是tidyverse体系的函数,这类函数从设计上就不会直接修改传入的原始对象,只会把修改后的新结果作为返回值输出。
你执行rename(test,c=a)时,控制台只是临时把改完的结果打印出来预览,并没有把改动存到原来的test变量里,所以之后再打印test,它还是最开始列名为a、b的原始状态。
修复方法
把rename()输出的修改结果重新赋值回原变量,改动才会永久保存,示例代码如下:
# 提前加载依赖包 library(tibble) library(dplyr) # 创建初始tibble对象 test <- tibble(a=1:2,b=3:4) # 重命名后将结果赋值回原变量 test <- rename(test, c = a)
如果习惯用管道符写法,也可以写成:
test <- test %>% rename(c = a)
内容的提问来源于stack exchange,提问作者RogerH3
相关产品推荐
相关产品推荐

