R - readLines输出空行

时间:2013-10-09 14:58:51

标签: r file readlines

我遇到了readLines() - 函数的一些奇怪行为,它基本上包含在所有R-run中。正如我之前做过的那样,或者成千上万次,我试着读出这样一个文件的行:

workingDir <- ""

tempFile <- file(paste(workingDir, "/stationaer_mittel004_head3D.csv", sep="", collapse=""), open="r")
s_mittel001_head <- readLines(tempFile)
close(tempFile)
s_mittel001_head

这不能正确读取文件内容,结果如下:

[1] "\"" ""   ""   ""   ""

如果我对文件名做错了,我会进行双重和三重检查,但是在文件或webbrowser中访问文件时它可以正常工作。随后,我明确地将文件内容复制到另一个csv并试图打开这个。它确实有效。我在我的笔记本电脑的administrive帐户上,这两个文件都没有显示特殊的权限限制。创建具有相同文件名的新文件也可以解决问题。

**这就是为什么我想知道是否有人知道可能导致这种行为的原因。

谢谢!**

2 个答案:

答案 0 :(得分:0)

正如@CarlWitthoft所指出的那样,readLines()在读取具有某些换行符类型的ASCII文件时有问题(不知道究竟是哪种:vs vs)。这导致一个几乎为空的字符串列表。此外,该功能似乎无法看到文件的结尾。

最终解决方案:使用“更合适”的linebreak-standard程序将文件内容复制并粘贴到新文件中。

答案 1 :(得分:0)

对我来说,这使我进入了这篇帖子https://github.com/tidyverse/readr/issues/857,其中 mcleanle 的评论使我走了正确的路。
根本原因实际上是编码语言。我的文件编码为UCS-2 LE BOM,更改为UTF-8对我来说已经解决了。