如何在R的DataFrame列名中支持巴西葡萄牙语特殊字符
解决方法
- 第一步:修复列名编码异常
你看到的<ed>``<ea>``<e7>这类字符是列名编码不匹配导致的Latin-1编码字符转义显示,直接执行一行代码批量转换所有列名编码为UTF-8即可:
colnames(rais2011_licmat) <- iconv(colnames(rais2011_licmat), from = "latin1", to = "UTF-8")
如果是读取数据阶段就出现编码问题,读取文件时直接指定编码即可,示例:
# 读取csv时指定编码为latin1/UTF-8,根据你的文件实际编码二选一 rais2011_licmat <- read.csv("你的文件路径", encoding = "latin1") rais2011_licmat <- read.csv("你的文件路径", encoding = "UTF-8")
- 第二步:无需索引重命名列的正确写法
dplyr的rename()语法规则为新列名 = 旧列名,如果列名包含特殊字符、空格、重音符号等,只需要用反引号`将列名包裹即可直接识别,不需要通过索引定位:
rais2011_licmat = rais2011_licmat %>% rename( vínculo_ativo = `VínculoAtivo3112`, mês_desligamento = `MêsDesligamento` )
- 额外环境配置建议(Windows用户可选)
如果你是Windows系统的RGui用户,可能依然存在特殊字符显示异常的问题,建议切换到RStudio,同时将RStudio默认编码设置为UTF-8:依次点击工具 -> 全局选项 -> 代码 -> 保存,将默认文本编码修改为UTF-8即可。
内容的提问来源于stack exchange,提问作者user16019366
相关产品推荐
相关产品推荐

