readr - 不读取缺少标题的列

Posted

技术标签:

【中文标题】readr - 不读取缺少标题的列【英文标题】:readr - does not read columns with missing headers 【发布时间】:2017-12-11 20:58:30 【问题描述】:

在标题行缺少数据集中最后几列的条目的文件上使用 read_tsv 时,我遇到了麻烦。 readr 确实指出了警告/问题的情况,但这似乎与 readr 应该处理这些情况的方式背道而驰,如下所示: https://github.com/tidyverse/readr/issues/189

这个对 read_csv 的调用示例取自上面的链接:

read_csv("a,b\n1,2,3,4")
#> Warning: 1 parsing failure.
#> row # A tibble: 1 x 5 col     row   col  expected    actual         file expected   <int> <chr>     <chr>     <chr>        <chr> actual 1     1  <NA> 2 columns 4 columns literal data file # A tibble: 1 x 5
#> 
#> # A tibble: 1 x 2
#>       a     b
#>   <int> <int>
#> 1     1     2
#> Warning message:
#> In rbind(names(probs), probs_f) :
#>   number of columns of result is not a multiple of vector length (arg 2)

注意,我使用的是 R v3.4.2 和 readr v1.1.1。根据之前使用 readr 的经验(以及上面的链接),readr 仍应读取缺少标题的列并自动为其分配名称 X1 和 X2。 readr 是否改变了处理这些案件的方式?这是 tibble 的副作用吗?

【问题讨论】:

对于readr github 问题似乎是一个更好的问题。相关:github.com/tidyverse/readr/issues/189。任何更改通常都列在NEWS 【参考方案1】:

也许只是为此使用基础 R 并完成它?

file_path <- getwd("a,b\n1,2,3,4")
read.csv(file_path, stringsAsFactors = FALSE)

但是,如果您坚持使用 readr,那么也许尝试从 github 下载最新的开发版本,看看是否能解决它

devtools::install_github("tidyverse/readr")

如果这不起作用,请安装以前的版本。

library(checkpoint)
checkpoint("2015-04-26")
install.packages("readr")

【讨论】:

【参考方案2】:

我按照 MrFlick 的建议将其发布到了读者的 gitHub 页面。看起来这实际上是一个错误:https://github.com/tidyverse/readr/issues/762。 希望我们会在下一个版本中看到修复。

【讨论】:

以上是关于readr - 不读取缺少标题的列的主要内容,如果未能解决你的问题,请参考以下文章

read_csv 缺少/不完整的标题或不规则的列数

如何在mysql的列中找到缺少的月份?

R 如何实现更快读取数据 - 使用readr包

Pandas:打印没有条目的列。不缺少值

Read.Table 与 Readr 包中的 Read_Table - Readr 添加的额外列

使用 readr 读取文本文件,其中引号结束行