首页 > 解决方案 > 在 R 中,read.table 在特定的开始字符串上返回错误

问题描述

在 R 中工作(在 macOS Catalina 上使用 RStudio 的 R 4.0.3,或在 linux 上的 R 3.3.1),当我尝试导入(使用 read.table)一个前 3 个字符为“BZh”的文本文件时,之后至少还有一个字符,我得到一个错误。

我写了一个测试来查看其他字符组合,但“BZh *”是迄今为止唯一一个 import.table 返回错误的组合。我没有测试所有的 ascii 字符或任何东西,只是大小写字母。这是我写的测试:

upper_chars = unlist(strsplit("ABCDEFGHIJKLMNOPQRSTUVWXYZ", split = ""))
lower_chars = unlist(strsplit("abcdefghijklmnopqrstuvwxyz", split = ""))
outpath="test.txt"
for (char1 in upper_chars){
  for (char2 in upper_chars){
    for (char3 in lower_chars){
      test_str <- paste(char1, char2, char3, "_", sep = "")
      write.table(test_str, outpath, quote = FALSE, row.names = FALSE, col.names = FALSE)
      tryCatch({
        read.table(outpath)
      },
      error = function(cond) {
        message(test_str)
      })
    }
  }
}

报告错误的唯一字符串是“BZh”,后跟至少一个其他字符(我已经将第 4 个字符测试为“0”、“_”以及大小写字符,它们都导致read.table 中的错误)。“BZh”本身不会报告错误。“Bzh_”、“bzh_”和“bzH_”都没有

我已经尝试在 vim 中创建文件(而不是在 R 中使用 write.table 编写表),并得到相同的错误,尽管我没有对此进行过多测试。

标签: r

解决方案


推荐阅读