如何解决read.fwf运行时错误:R中的无效多字节字符串

时间:2014-08-29 18:30:16

标签: r

当我尝试使用read.fwf读取固定宽度的文本文件时,我得到以下内容。

这是输出:  'ETE< 52>处的无效多字节字符串O 19950207 19031103 537014290 7950 WILLOWS RD

以下是最相关的代码行

fieldWidths <- c(10,50,30,40,6,8,8,9,35,30,9,2)
colNames <- c("certNum", "lastN", "firstN", "middleN", "suffix", "daDeath", "daBirth", "namesSSN", "namesResStr", "namesResCity", "namesResZip", "namesStCode")
dmhpNameDF <- read.fwf(fileName, widths = fieldWidths, col.names=colNames, sep="", comment.char="", quote="", fileEncoding="WINDOWS-1258", encoding="WINDOWS-1258")

我在Mac OSX 10.9.4上运行R 3.1.1

正如你所看到的,我已经尝试过指定替代编码,我尝试过latin1和UTF-8以及WINDOWS-1250到1258

当我将这个文件读入Excel或Word或TextEdit时,一切看起来都很好。通过使用错误消息文本我可以识别文本的违规行(行)是行号5496,并且在检查时,我可以看到违规字符显示为斜体字母'f'搜索该字符显示有在这个文件中约有4个实例。我有很多这样的文件要处理,所以一个接一个地删除有问题的字符不是一个好的解决方案。

到目前为止,有问题的字符总是出现在名字字段中,这对我有好处,因为我实际上并不想从这个文件中获取名称数据,这对它没有意义。如果它是一个已损坏的数字字段,那么我必须抛出该行。

由于Word和Excel可以读取文件(显然用违反'f'代替违规字符,肯定必须有一种方法用R读取它,但我还没有找到解决方案。我搜索过了许多与“无效多字节字符串”相关的问题示例,但没有找到解决我问题的任何信息。

我的目标是能够读取数据,忽略这个“字符错误”或用其他东西代替违规字符。

不幸的是,相关文件包含敏感信息,因此我无法发布该文件的副本供人们使用。

由于

0 个答案:

没有答案