readr - 不读取缺少标题的列

时间:2017-12-11 20:58:30

标签: r readr

在文件中使用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。读取器是否改变了它应该处理这些情况的方式?这是一个副作用吗?

2 个答案:

答案 0 :(得分:0)

也许只使用基数R来完成它并完成它?

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

但是,如果你坚持使用readr,那么可能会尝试从github下载最新的dev版本,看看是否能修复它

devtools::install_github("tidyverse/readr")

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

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

答案 1 :(得分:0)

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