R:当每行的末尾没有分隔时读取分隔表

时间:2016-07-19 04:03:41

标签: r database text

我正在尝试阅读Census' Geographic Boundary Change Notes。正如可以在超链接上看到的那样,该文件是K x 11表。可以通过该页面上的链接获得pipe-delimited text version

我尝试将管道分割的文本版本手动保存为.txt文件(例如foo.txt),然后通过以下方式将其作为管道分隔表读取:

data <- read.table("foo.txt", sep="|")

然而,这会产生错误:

  

扫描错误(文件,内容,nmax,sep,dec,quote,skip,nlines,na.strings,:     第177行没有11个元素

当我向下滚动到我认为的第177行时,我看不到任何遗漏。因此,我查看原始文本以查看潜在问题,一个问题是管道看起来没有划分单个行 - 即没有任何指示符表明我们位于原始.txt表格行的末尾文件。但是,这似乎与read.table()期待11个对象的事实相矛盾。

  1. 我是否需要在.txt文件中添加与表格每行末尾对应的分隔符?

  2. 如果是这样,如何在不手动添加分隔符的情况下执行此操作?

  3. 如果这不是问题,请道歉。

2 个答案:

答案 0 :(得分:1)

分界没有问题。我改为下载.txt文件并使用&#39; |&#39;在Microsoft Excel中打开它。作为分隔符。向下滚动到存在问题的行,似乎西班牙字符导致问题。

答案 1 :(得分:1)

第177行引用retryWhen。由于{ const retrySubject = new Rx.Subject(); const retry$ = retrySubject.asObservable(); new Rx.Observable(observer => { console.log("subscribe"); observer.error("ERROR"); }) .retryWhen(() => retry$) .subscribe({ error: console.log }); retrySubject.next(); } // subscribe // subscribe 的默认引号参数为retry(count),因此Clark's Point city中的read.table被读取为字符串的开头。 quote = "\"'"之后的所有内容(包括换行符)均作为一个字符串的一部分读取,直到'到达第337行,在其中找到Clark's并在{中读取'} {1}}作为字符串的结尾引号字符始于第177行。

如果您设置read.table,它将解决此问题。