首页 > 解决方案 > 为什么在 r 中使用 read.csv 时没有得到“使用列规范解析”?

问题描述

我正在关注关于 tidyverse 的本教程。它从一个我可以重现的非常简单的示例开始:

library(readr)
menu <- read_csv("http://joeystanley.com/data/menu.csv")
#> Parsed with column specification:
#> cols(
#>   Category = col_character(),
#>   Item = col_character(),
#>   Oz = col_double(),
#>   Calories = col_double(),
#>   Fat = col_double(),
#>   Sugars = col_double()
#> )

但是当我从自己的计算机上读取 csv 文件时,我没有收到Parsed with column specification消息。为什么?

library(readr)
df1 <- data.frame(ID = c(1, 2, 3, 4, 5),
                  var1 = c('a', 'b', 'c', 'd', 'e'),
                  var2 = c(1, 1, 0, 0, 1))
write.csv(df1,"./df1.csv", row.names = TRUE)
read.csv(file = './df1.csv')
#>   X ID var1 var2
#> 1 1  1    a    1
#> 2 2  2    b    1
#> 3 3  3    c    0
#> 4 4  4    d    0
#> 5 5  5    e    1

我试过使用options(readr.num_columns = 1)但没有任何改变。

标签: rcsv

解决方案


我正在使用read.csv而不是read_csv. 使用后者,它按预期工作:

library(readr)
df1 <- data.frame(ID = c(1, 2, 3, 4, 5),
                  var1 = c('a', 'b', 'c', 'd', 'e'),
                  var2 = c(1, 1, 0, 0, 1))
write.csv(df1,"./df1.csv", row.names = TRUE)
read_csv(file = './df1.csv')
#> Warning: Missing column names filled in: 'X1' [1]
#> Parsed with column specification:
#> cols(
#>   X1 = col_double(),
#>   ID = col_double(),
#>   var1 = col_character(),
#>   var2 = col_double()
#> )
#> # A tibble: 5 x 4
#>      X1    ID var1   var2
#>   <dbl> <dbl> <chr> <dbl>
#> 1     1     1 a         1
#> 2     2     2 b         1
#> 3     3     3 c         0
#> 4     4     4 d         0
#> 5     5     5 e         1

reprex 包于 2021-04-05 创建(v0.3.0)


推荐阅读