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

时间:2015-06-05 11:52:50

标签: r csv load rdata

似乎最直观的是.rdata文件可能是加载R的禁用文件格式,但是当扫描一些堆栈帖子时,似乎更多的注意力是增加.csv或其他格式的加载时间。有明确的答案吗?

1 个答案:

答案 0 :(得分:7)

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

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

.tab

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

.tab

data.table::fread 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

@Roman请求在3秒内加载相同的~500MB文件:

.RData

system.time( load("file.RData") ) # user system elapsed # 2.181 0.028 2.210 同一数据帧的二进制文件

.RData

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

  1. 二进制data.frame::fread()最快
  2. readr::read_tsv是第二个
  3. utils::read.x慢了一个数量级
  4. readr速度最慢,只有String consolidated = getFileContents(fileName); String newlines[] = null; if(consolidated!="") { newlines=consolidated.split("---------------------SAVED BY ####### ----------------"); }
  5. 的一半