R中read.csv导入CSV出现无效多字节字符串错误的解决方法
CSV导入R报错的成因与解决方法
问题成因
- 编码不匹配:错误信息里的
<ff><fe>是UTF-16LE编码的字节序标记(BOM),而read.csv默认使用系统本地编码(多数情况是UTF-8)读取文件,无法识别UTF-16格式的内容,导致列名解析失败。 - 嵌入式空值警告:因为编码识别错误,R把UTF-16的双字节字符误判为空值(nulls),所以抛出多条相关警告。
解决办法
方法1:指定UTF-16LE编码读取
直接在read.csv中添加fileEncoding参数,指定正确的编码格式:
test <- read.csv('https://raw.githubusercontent.com/datacfb123/testdata/main/cher_2_current_df_alternative_trunc_final.csv', fileEncoding = "UTF-16LE")
方法2:使用readr包自动识别编码
tidyverse系列的readr包对编码的兼容性更好,能自动检测文件编码:
- 先安装并加载包(如果未安装):
install.packages("readr") library(readr)
- 读取文件:
test <- read_csv('https://raw.githubusercontent.com/datacfb123/testdata/main/cher_2_current_df_alternative_trunc_final.csv')
内容的提问来源于stack exchange,提问作者wizkids121
相关产品推荐
相关产品推荐

