使用read.table导入|分隔的TXT数据到R时报错的解决方法求助
报错核心原因
你出现报错的根本原因是代码中错误嵌套了source()函数,和列内的逗号、空格没有任何关系。source()是R中用于执行指定路径下R脚本的函数,你将source(file.choose())传给read.table的file参数时,R会先尝试把你选中的txt文件作为R代码执行,自然会把txt里的非R语法内容(逗号、空格分隔的字符串等)判定为语法错误,抛出你看到的报错信息。
你列内的逗号、空格都属于合法的列内容,不需要提前清理,只要读取函数配置正确就能正常识别。
修复方法
- 直接修正读取代码即可,不需要修改原始数据文件:
pc <- read.table( file = file.choose(), header = FALSE, sep = "|", quote = "", fill = TRUE, stringsAsFactors = FALSE )
补充参数说明:
quote = "":声明数据中没有包裹字符串的特殊引号,避免R误判列边界fill = TRUE:自动填充行缺失的列,避免因部分行列数不一致报错stringsAsFactors = FALSE:避免把字符串类的列自动转为因子类型,方便后续处理
- 如果数据文件体积较大,也可以使用
readr包的read_delim函数,读取效率和兼容性更高:
library(readr) pc <- read_delim( file = file.choose(), delim = "|", col_names = FALSE )
内容的提问来源于stack exchange,提问作者E.T
相关产品推荐
相关产品推荐

