读入 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
文件:
.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
应@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 数据框:
- 二进制
.RData
最快
data.frame::fread()
紧随其后
readr::read_tsv
慢了一个数量级
utils::read.x
最慢,只有 readr
的一半
.rdata 文件可能是 R 加载的最快文件格式,这似乎是最直观的,但在扫描一些堆栈帖子时,似乎更多的注意力集中在提高 .csv 或其他格式的加载时间上。有确定的答案吗?
不是一个明确的答案,但下面是使用 utils::read.delim()
、readr::read_tsv()
、data.table::fread()
和 .tab
文件加载相同数据帧所花费的时间作为使用 system.time()
函数计时的二进制 .RData
文件:
.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
应@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 数据框:
- 二进制
.RData
最快 data.frame::fread()
紧随其后readr::read_tsv
慢了一个数量级utils::read.x
最慢,只有readr
的一半