R语言中数据框列名点替换为空格失败,求原因及解决方法
问题分析与解决方法
当前操作的问题
你写的正则表达式^.$逻辑错误:
^和$分别匹配字符串的开头和结尾,^.$表示匹配整个字符串就是一个点的情况- 你的列名是
name.name1这类包含多个字符且点在中间的字符串,这个正则完全匹配不到任何点,所以替换操作没有产生任何效果,列名还是原样。
正确处理方法
要匹配列名中所有字面意义的点,需要把正则里的.转义(因为.在正则中默认匹配任意单个字符),用\\.来表示字面的点,然后替换成空格:
colnames(df) <- gsub("\\.", " ", colnames(df))
执行后查看列名:
colnames(df) # 输出: "name name1" "name name2" "name name3"
内容的提问来源于stack exchange,提问作者hiperhiper
相关产品推荐
相关产品推荐

