【发布时间】:2013-10-09 14:58:51
【问题描述】:
我遇到了readLines()-函数的一些奇怪行为,它基本上包含在所有 R 运行中。正如我之前已经完成了数百次或数千次一样,我尝试像这样读取文件的行:
workingDir <- ""
tempFile <- file(paste(workingDir, "/stationaer_mittel004_head3D.csv", sep="", collapse=""), open="r")
s_mittel001_head <- readLines(tempFile)
close(tempFile)
s_mittel001_head
这不会正确读取文件内容并导致如下结果:
[1] "\"" "" "" "" ""
如果我对文件名做错了什么,我会进行双重、三重和四重检查,但在文件或网络浏览器中访问文件时它工作得很好。随后,我直接将文件内容复制到另一个 csv 并尝试打开这个。它确实奏效了。我在笔记本电脑的管理员帐户上,两个文件都没有显示特殊权限限制。创建具有相同文件名的新文件也可以解决此问题。
**这就是为什么我想知道是否有人知道可能导致这种行为的原因。
谢谢!**
【问题讨论】:
-
可以直接在文件名上调用readLines,不需要打开和关闭连接。
-
看起来像通常的
vs vs 行终止问题。您的原始文件可能是用 MicrosoftWord 等撒旦的产物创建的,因此包含不受欢迎的 EOL 字符。 -
实际上,它是由 Modelmuse 创建的,Modelmuse 是地下水流模型 Modflow(和朋友)的前处理器和后处理器。在使用相同的功能创建类似的文件后,我绝对同意你的看法。这正是 Modelmuse 输出文件的方式。