R Markdown执行knit导出HTML报错第24行存在多字节字符求助
错误原因
这个报错是R/arules包的底层C解析器不支持多字节字符导致的,触发原因通常有三类:
- R Markdown文件本身的保存编码不是UTF-8,用GBK/GB2312等中文编码保存时,文件里的多字节字符(中文、全角符号)无法被解析器识别
- 你读取的
shopping.csv文件里包含中文列名、中文分类值或者其他非ASCII的多字节字符,arules包的apriori函数在解析事务数据时无法处理这类字符 - 代码中存在误输入的隐藏全角符号,比如全角空格、全角引号、全角等号,也会被判定为无效多字节字符
排查解决步骤
- 第一步:修正Rmd文件编码
打开Rmd文件后,点击RStudio编辑窗口右下角的编码标识,选择「UTF-8」,再选择「保存时重新编码」,重新保存文件后尝试knit。 - 第二步:清理数据文件的非ASCII字符
打开shopping.csv,把所有中文内容、全角符号全部替换为纯ASCII的英文编码,比如中文列名改为英文,中文分类值替换为英文标识。同时建议把文件路径中的空格也替换为下划线,比如把all data改为all_data,避免路径解析异常。 - 第三步:清理代码中的全角符号
定位到报错提示的第24行附近的代码,逐行检查是否有全角的标点、空格,全部替换为半角符号。 - 第四步:添加全局编码配置
可以在第一个R代码块的最开头加入两行配置,强制R使用ASCII编码解析内容:Sys.setlocale(category = "LC_ALL", locale = "C") options(encoding="UTF-8")
内容的提问来源于stack exchange,提问作者xueping liao
相关产品推荐
相关产品推荐

