【问题标题】:Using vroom to read in Date column and all other columns as double in R使用 vroom 在 R 中读取日期列和所有其他列作为双精度
【发布时间】:2021-06-20 17:47:18
【问题描述】:

我有 csv 文件,其中包含超过 10000 个变量。我想使用 vroom 来读取它们,并希望将第 1 列标识为日期,将第 2 列标识为字符,第 3 列和第 4 列标识为整数,并将所有其余列标识为双精度。我该怎么做?

我的代码看起来像这样,但是失败了。

data81 <- vroom(fname_1981_2010, col_types = c(Date = col_date(), MonthDay = col_character(), doy = col_integer(), (.) = col_double()))

告诉 vroom 在其余列中读取为双精度(替换我的代码中的 (.) 的语法是什么?谢谢。

【问题讨论】:

    标签: r readr vroom


    【解决方案1】:

    可以通过cols().default参数实现:

    library(vroom)
    
    set.seed(42)
    
    d <- data.frame(
      date = sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by="day"), 12),
      MonthDay = sample(LETTERS[1:7], 12, replace = TRUE),
      doy = 1:12,
      col4 = runif(12),
      col5 = runif(12),
      col6 = runif(12)
    )
    
    fname_1981_2010 <- "fname_1981_2010.csv"
    
    write.csv(d, fname_1981_2010, row.names = FALSE)
    
    vroom(fname_1981_2010, col_types = cols(date = col_date(), MonthDay = col_character(), 
          doy = col_integer(), .default = col_double()))
    #> # A tibble: 12 x 6
    #>    date       MonthDay   doy    col4   col5   col6
    #>    <date>     <chr>    <int>   <dbl>  <dbl>  <dbl>
    #>  1 1999-02-18 D            1 0.514   0.208  0.619 
    #>  2 1999-11-17 A            2 0.390   0.907  0.333 
    #>  3 1999-06-02 E            3 0.906   0.612  0.347 
    #>  4 1999-03-15 F            4 0.447   0.380  0.398 
    #>  5 1999-08-16 D            5 0.836   0.436  0.785 
    #>  6 1999-05-26 B            6 0.738   0.0374 0.0389
    #>  7 1999-05-02 B            7 0.811   0.974  0.749 
    #>  8 2000-01-01 G            8 0.388   0.432  0.677 
    #>  9 1999-05-08 C            9 0.685   0.958  0.171 
    #> 10 1999-10-30 A           10 0.00395 0.888  0.261 
    #> 11 1999-01-24 A           11 0.833   0.640  0.514 
    #> 12 1999-11-23 C           12 0.00733 0.971  0.676
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      • 2017-01-09
      • 2011-04-18
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多