You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Windows环境下读取TXT文件时的make.names报错问题

解决read.delim读取TXT时的编码与空值错误

错误原因

  • 报错里的<ff><fe>是UTF-16LE编码的字节顺序标记(BOM),说明你的machine.txt采用UTF-16编码,而read.delim默认使用Windows系统本地编码(如GBK),编码不匹配导致解析失败。
  • 「嵌入空值」的警告也是编码不匹配引发的,R把UTF-16的字节错误识别成了空字符。

解决方案

方法1:指定编码直接读取

在read.delim中添加encoding参数,明确指定文件为UTF-16LE编码:

machine_delim <- read.delim("C:/KOMSTAT/mini project/machine.txt", 
                            header = TRUE, 
                            sep = "\t", 
                            encoding = "UTF-16LE")

若仍有问题,可尝试encoding = "UTF-16",让R自动识别字节顺序。

方法2:手动转换文件编码(Windows)

无需修改代码,直接将文件转成UTF-8编码:

  • 用记事本打开machine.txt
  • 点击「文件」→「另存为」
  • 编码选择「UTF-8」,覆盖原文件
  • 再用默认方式读取:
machine_delim <- read.delim("C:/KOMSTAT/mini project/machine.txt", 
                            header = TRUE, 
                            sep = "\t")

方法3:使用readr包的函数(更省心)

readr包的文件读取函数能自动检测编码和BOM,适合频繁处理编码问题的场景:

# 首次使用需安装包
install.packages("readr")
library(readr)

# read_tsv专门处理制表符分隔的文件
machine_delim <- read_tsv("C:/KOMSTAT/mini project/machine.txt")

内容的提问来源于stack exchange,提问作者aaaaaaab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:23:19