在 R 中打开 CSV 文件时出现错误消息

Posted

技术标签:

【中文标题】在 R 中打开 CSV 文件时出现错误消息【英文标题】:Error Message when Opening a CSV File in R 【发布时间】:2022-01-19 12:39:11 【问题描述】:

我尝试使用 R studio 在 R 中打开一个 csv 文件,但收到以下警告消息:

在 readLines("persons.csv") 中:在“persons.csv”中找到不完整的最后一行

请问文件有什么问题,我该如何解决?

谢谢。

【问题讨论】:

可能有多种原因:您有带有# 的单元格吗? (Excel 经常标记无法以这种方式处理的内容!)如果是这样,这将被解释为注释字符,并且它所在的单元格被忽略,这导致一个单元格丢失。将comment.char = "" 设置为将# 作为普通字符读入。否则,您可以尝试fill = TRUE。如果即使这样也失败了,请仔细查看 EXCEL 中的数据 - 也许您可以看到不规则性!最后,查看?readLines了解更多参数 【参考方案1】:

您可以忽略它,因为它可能仍然有效。这是一个没有给出警告的最终换行符的示例和另一个没有给出警告的最终换行符的示例。两者都有效。

cat("a,b\n1,2", file = "test1.csv")
read.csv("test1.csv")
##   a b
## 1 1 2
## Warning message:
## In read.table(file = file, header = header, sep = sep, quote = quote,  :
##   incomplete final line found by readTableHeader on 'test1.csv'

cat("a,b\n1,2\n", file = "test2.csv")
read.csv("test2.csv")
##   a b
## 1 1 2

要解决此问题,请尝试以下方法之一:

    忽略它,因为它可能有效。

    将文件放入文本编辑器并再次写出。这通常会消除警告。

    使用 readr::read_csv。指示的参数消除了该命令以其他方式输出的许多消息。

     library(readr)
     read_csv("test1.csv", show_col_types = FALSE)
     ## # A tibble: 1 x 2
     ##       a     b
     ##   <dbl> <dbl>
     ## 1     1     2
    

    使用 data.table::fread。它不会给出那个消息。

     library(data.table)
     fread("test1.csv", data.table = FALSE)
     ##   a b
     ## 1 1 2
    

    从 Windows cmd 行使用这个(注意点)

     echo. >> test1.csv
    

    或在 bash 下(无点)

     echo >> test.csv
    

【讨论】:

以上是关于在 R 中打开 CSV 文件时出现错误消息的主要内容,如果未能解决你的问题,请参考以下文章

尝试将 JSON 文件展平为 CSV 时出现错误消息

尝试打开 .csv 文件时出现“从文件初始化失败”错误(这根本不应该有问题)

R studio错误:无法保存也无法写入csv

在 Eclipse 中打开 apk 文件时出现错误消息 - 找不到测试 apk 所需的 jarsigner

使用 OleDbDataAdapter 读取 CSV 文件时出现未指定的错误

打开带有 2 个“扩展名”的文件时出现 Jet 错误 3011