R中write.table导出的制表符分隔txt文件无法正确读取怎么办
问题根因
导出时设置了quote=F,文本列中的单引号、HTML标签中的双引号没有被引号包裹,read.table默认会识别这些符号作为引用符跨行读取;同时文本中存在大量#开头的话题标签,read.table默认把#识别为注释起始符截断行,两个原因共同导致读取到的行数远多于实际行数。
正确读取方案
方案1:使用R基础包read.table读取
调整comment.char参数禁用注释识别,正确命令如下:
df <- read.table( file.choose(), header = TRUE, sep = "\t", quote = "", comment.char = "", fill = TRUE, stringsAsFactors = FALSE )
方案2:使用readr包读取(更适配制表符分隔文件)
如果基础包读取仍有异常,可以安装使用readr包的read_tsv函数,对无引号的制表符分隔文件兼容性更好:
# 首次使用先安装包 install.packages("readr") library(readr) df <- read_tsv( file.choose(), quote = "", comment = "" )
内容的提问来源于stack exchange,提问作者BnsHm
相关产品推荐
相关产品推荐

