读入 R 最快的文件格式是什么?

What are the file formats that read into R the fastest?

.rdata 文件可能是 R 加载的最快文件格式,这似乎是最直观的,但在扫描一些堆栈帖子时,似乎更多的注意力集中在提高 .csv 或其他格式的加载时间上。有确定的答案吗?

不是一个明确的答案,但下面是使用 utils::read.delim()readr::read_tsv()data.table::fread().tab 文件加载相同数据帧所花费的时间作为使用 system.time() 函数计时的二进制 .RData 文件:

.tabutils::read.delim

system.time(
  read.delim("file.tab")
)
#   user  system elapsed 
# 52.279   0.146  52.465

.tabreadr::read_tsv

system.time(
  read_tsv("file.tab")
)    
#   user  system elapsed 
# 23.417   0.839  24.275

.tabdata.table::fread

应@Roman 的请求,同样的 ~500MB 文件在 3 秒内加载完毕:

system.time(
  data.table::fread("file.tab")
)
# Read 49739 rows and 3005 (of 3005) columns from 0.400 GB file in 00:00:04
#    user  system elapsed 
#   3.078   0.092   3.172 

.RData 相同数据帧的二进制文件

system.time(
  load("file.RData")
)
#    user  system elapsed 
#   2.181   0.028   2.210

显然不确定(样本大小 = 1!)但在我的情况下有 500MB 数据框:

  1. 二进制.RData最快
  2. data.frame::fread()紧随其后
  3. readr::read_tsv慢了一个数量级
  4. utils::read.x 最慢,只有 readr
  5. 的一半