【问题标题】:Incomplete final line when trying to read csv in R尝试在 R 中读取 csv 时最后一行不完整
【发布时间】:2023-03-17 05:13:01
【问题描述】:

我在 Mac OS 10.8.2 上运行了 R v.2.15.1。今天早些时候,每次我尝试导入任何最近创建的(今天)csv 文件时,R 都会向我抛出错误。较旧(今天之前)的 csv 文件可以正常工作,但我创建的任何新文件都不会在没有警告的情况下读入。

我正在以相同的方式创建 csv - 在 MS Excel(Office for Mac 2011)中将电子表格另存为 .csv。

即使使用虚拟文件('test.csv'),我也会得到: “警告信息: 在 read.table(file = file, header = header, sep = sep, quote = quote, : readTableHeader 在 'test.csv' 上找到的不完整的最后一行"

在 TextEdit 中,test.csv 是:

cat,stuff
1,1
2,2

我尝试在每行末尾按回车键(如此处建议:'Incomplete final line' warning when trying to read a .csv file into R),但这不起作用。

我重新安装了 R 和 Microsoft Excel。奇怪的是,我能够在带有 R 的 Windows 机器上读取 csv 文件而没有警告。在另一台带有 R 和 RStudio 的 Mac 上,我得到了同样的警告......

我知道这“只是”一个警告,但它让我有点紧张,并且似乎有可能在未来引起问题。

【问题讨论】:

  • 这偶尔发生在我身上,我不知道为什么 - 这是 MS Excel 的一个怪癖,不知何故无法正确创建 .csv 文件。有时重新启动 Excel 会有所帮助。
  • 如果您可以发布一个实际的问题文件,这将有所帮助,例如在 Dropbox 上。
  • 实际上,我会更加谨慎。 R 不会告诉你它正在导入什么,你必须告诉它。我会仔细检查您的所有列,以确保它们与您的预期类型(整数、数字、字符、因子)匹配。 \
  • 最后必须有一个空行。在您的test.csv 中,在文本编辑器中打开2,2 后按回车键。点击保存并在其上执行read.csv。没有错误,对吧?
  • Excel“有帮助”具有不同的 EOL 字符默认值(无、CR/LF 等),因此它可以创建略有不同的“.csv”文件。正如 DWin 指出的那样,这只是一个警告,不会引起问题

标签: macos r excel csv end-of-line


【解决方案1】:

我遇到了这个确切的问题,就我而言,我得到的数据框格式不正确。我发现将 Excel 文件保存为 UTF-16,然后调用 read.table(... fileEncoding='UTF-16') 效果很好。从 Excel 导出 UTF 文件后无需处理。

【讨论】:

    【解决方案2】:

    没有理由担心。 R 的读取函数“期望”有一个空行,但它们不会导致格式错误的数据帧。

    【讨论】:

    • @Maiasuara ,是的,这实际上似乎有效!如果我在 excel 中做,它仍然会给我带来问题,但如果我在文本编辑器中做,它似乎可以工作......我想我会在我将任何内容读入 R 之前这样做,只是为了确定它正在正确读取...谢谢大家!
    猜你喜欢
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多