【问题标题】:Warning message: In file(file, "rt") [duplicate]警告消息:在文件中(文件,“rt”)[重复]
【发布时间】:2013-01-17 10:25:16
【问题描述】:

我正在尝试将 CSV 文件导入到项目的图表中。我在 Mac OS X 上使用 R 2.15.2。

  • 第一种方法尝试

    我试图运行以导入 CSV 文件的脚本是这样的:

    group4 <- read.csv("XXXX.csv", header=T)
    

    但我不断收到此错误消息:

    read.table 中的错误(文件 = 文件,标题 = 标题,sep = sep,quote = quote,: 找不到对象“XXXXXX.csv”
  • 第二种方法试了

    我尝试移动我的工作目录,但出现另一个错误,提示我无法移动我的工作目录。所以我进入Preferences 选项卡并将工作目录更改为包含我的 CSV 文件的文件。但我仍然得到同样的错误(作为第一种方式)。

  • 尝试了第三种方法

    然后我尝试了这个脚本:

    group4 <- read.table(file.choose(), sep="\t", header=T)
    

    我得到这个错误:

    警告信息: 在 read.table(file.choose(), sep = "\t", header = T) 中: readTableHeader 在“/Users/xxxxxx/Documents/Programming/R/xxxxxx/xxxxxx.csv”上找到的不完整的最后一行

我在 R 网站和整个 Internet 上进行了搜索,但没有任何东西可以让我将这个简单的 CSV 文件导入 R安慰。

【问题讨论】:

  • group4 看起来像什么?尽管有警告,看起来像你想要的吗?用tail(group4) 检查它的结尾。如果它看起来不错,您可以用suppressWarnings 结束对read.table 的调用,然后继续。
  • 如果您尝试读取尚未正确转换为 csv 的 Excel 文件,这也是您会收到的警告。也许有人只是更改了扩展名并认为这就足够了?
  • 从您对 cme​​ts 的回复和到目前为止的答案,我感觉您对软件并不熟悉。您可能会从阅读一些介绍性书籍中受益,以了解什么是目录、什么是文件(而不是在 Excel 中打开它们时的样子)等等。

标签: r csv error-handling import-from-csv


【解决方案1】:
  1. 该文件不在您的工作目录中,请更改它,或使用绝对路径。
  2. 您指向一个不存在的目录,或者您没有那里的写权限。
  3. 文件的最后一行格式错误。

【讨论】:

  • 您好,感谢您的回答。我使用了绝对路径,光标只是给了我一个新行,我不知道它是否正在加载。我在文件的最后一行添加了 EOL。
【解决方案2】:

关于缺少的 EOF(即文件中的最后一行已损坏)... 通常,数据文件应以空行结尾。如果是这样的话,也许检查你的文件。 作为替代方案,我建议尝试readLines()。此函数将数据文件的每一行读入一个向量。如果您知道输入的格式,即表格中的列数,您可以这样做...

number.of.columns <- 5 # the number of columns in your data file
delimiter <- "\t" # this is what separates the values in your data file
lines <- readLines("path/to/your/file.csv", -1L)
values <- unlist(lapply(lines, strsplit, delimiter, fixed=TRUE))
data <- matrix(values, byrow=TRUE, ncol=number.of.columns)

【讨论】:

  • 当我看到这个问题时,我真的对这个解决方案感到震惊,并认为警告信息具有误导性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
相关资源
最近更新 更多