我正在为一门大规模开放在线课程(MOOC)的项目工作,同时在 RStudio 中尝试使用
data.table
包。最初使用 fread()
函数导入数据文件时运行良好:fread("UCI HAR Dataset/features.txt")->features
fread("UCI HAR Dataset/test/y_test.txt")->ytest
然而,当我尝试运行下面这行代码时,我收到了一个弹出窗口,上面写着“R Session Aborted: R encountered a fatal error. The session was terminated.”
fread("UCI HAR Dataset/test/X_test.txt")->xtest
我不明白问题出在哪里。我检查了文件名和路径,确保所有拼写和大小写都正确,一切正常。使用read.table()的等效代码可以正常工作,不会导致R中止。我还尝试将文件重命名为“x_test.txt”,但仍然出现了相同的问题。
根据?fread
,该函数仅适用于“常规分隔文件”。据我所知,该文件是一个“常规分隔文件”,因为所有行具有相同数量的列。当我使用read.table时,没有单元格包含“NA”,我使用anyNA()
进行了检查。有没有快速确定文件是否是分隔符“常规”或者原始文件可能引起问题的其他内容?
更新
经过进一步研究并搜索开发者的github上列出的问题,我认为我的问题在于每行开头有两个空格,这在此处讨论。我不确定为什么R没有警告而中止了程序。然而,在相同的条件下,最新的data.table(1.9.5)开发版本并没有导致会话中止。
\r
或嵌套引号的原因。像这样的内容会导致fread
失败,建议在Emacs或其他可以查看特殊字符的文本编辑器中打开您的文档。 - Rorschach