首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用vroom读取Date列和R中的所有其他双精度列

使用vroom读取Date列和R中的所有其他双精度列
EN

Stack Overflow用户
提问于 2021-06-21 01:47:18
回答 1查看 81关注 0票数 2

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

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

代码语言:javascript
复制
data81 <- vroom(fname_1981_2010, col_types = c(Date = col_date(), MonthDay = col_character(), doy = col_integer(), (.) = col_double()))

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-21 02:05:50

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

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68058569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档