忽略 readr::read_csv 中的尾随分隔符

cbr*_*rnr 5 csv r readr tidyverse

当我使用 读取包含尾随分隔符的 CSV 文件时readr::read_csv,我收到一条警告,指出已填充缺少的列名。以下是重现此警告的简短示例 CSV 文件的内容(将以下代码段存储在名为 的文件中example.csv):

A,B,C,
2,1,1,
14,22,5,
9,-4,8,
17,9,-3,
Run Code Online (Sandbox Code Playgroud)

请注意每行末尾的尾随逗号。现在如果我加载这个文件

read_csv("example.csv")
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

Missing column names filled in: 'X4'
Run Code Online (Sandbox Code Playgroud)

即使我只想显式加载 3 列

read_csv("example.csv", col_types=cols_only(A=col_integer(),
                                            B=col_integer(),
                                            C=col_integer()))
Run Code Online (Sandbox Code Playgroud)

我仍然收到警告消息。

这是预期的行为还是有什么方法可以告诉 read_csv它应该忽略除我指定的列之外的所有列?或者是否有另一种方法来整理这个(显然格式错误的)CSV,以便删除/忽略尾随分隔符?

Oli*_*ost 3

我认为你不能。从我在文档中看到的,cols_only()是针对您已经加载的 R 对象。

但是,库fread()中的函数data.table允许您在读入文件时选择特定的列名称:

DT <- fread("filename.csv", select = c("colA","colB"))