【问题标题】:More problems with "incomplete final line"“不完整的最后一行”的更多问题
【发布时间】:2012-02-21 18:34:31
【问题描述】:

这个问题和here看到的类似。

我有大量大型 CSV,我正在通过一个函数连续加载和解析它们。其中许多 CSV 没有问题,但是当我尝试使用 read.csv() 加载它们时,有几个会导致问题。

我已将其中一个文件上传到公共 Dropbox 文件夹 here(请注意,该文件约为 10.4MB)。

当我尝试 read.csv() 该文件时,我收到警告警告消息:

In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on ...

尽管我在 StackOverflow 和 Rhelp 中寻找解决方案,但我无法找出问题所在。令人抓狂的是,当我跑步时

Import <- read.csv("http://dl.dropbox.com/u/83576/Candidate%20Mentions.csv")

使用 Dropbox URL 而不是我的本地路径,它会加载,但是当我保存那个数据框并尝试重新加载它时:

write.csv(Import, "Test_File.csv", row.names = F)
TestImport <- read.csv("Test_File.csv")

我再次收到“不完整的最后一行”警告。

所以,我想知道为什么加载 Dropbox 的版本有效,而本地版本无效,以及如何使我的本地版本有效——因为我有大约 400 个这样的文件(每个天),我无法使用无法以某种方式实现自动化的解决方案。

在一个相关的问题中,也许值得提出自己的问题,似乎一些“特殊字符”破坏了read.csv() 进程,并阻止了整个文件的加载。例如,一个包含 14,760 行的 CSV 仅加载 3,264 行。第 3,264 行包含这条雄辩的推文:

"RT @akiron3: acÎå23BkªÐÞ'q(@BarackObama )nĤÿükTPP ÍþnĤüÈ'áY‹ªÐÞĤÿüŽ \&'ŸõW^FSnĤ©'FhÎåšBkêÕ„kĤüÈLáUŒ~YÒhttp://t.co/ABNnWfTN “jg)(W^F”

同样,鉴于数百个文件的序列化加载,我如何 (a) 确定导致 read.csv() 进程中断的原因,以及 (b) 使用代码而不是手动解决问题?

非常感谢您的帮助。

【问题讨论】:

  • 无论你使用什么 api 来抓取 twitter,通常都有一个语言参数。也许只指定英文推文......或编写一些代码(在 R 或其他语言中)以删除该文件中的所有疯狂。我会从readLines 开始,然后从那里前往众所周知的小镇。

标签: r


【解决方案1】:

1)

 suppressWarnings(TestImport <- read.csv("Test_File.csv") )

2) 不匹配的引号是明显过早关闭的最常见原因。您可以尝试添加所有这些:

 quote="", na,strings="", comment.char=""

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多