似乎最直观的是.rdata文件可能是加载R的禁用文件格式,但是当扫描一些堆栈帖子时,似乎更多的注意力是增加.csv或其他格式的加载时间。有明确的答案吗?
答案 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数据帧:
data.frame::fread()
最快readr::read_tsv
是第二个utils::read.x
慢了一个数量级readr
速度最慢,只有String consolidated = getFileContents(fileName);
String newlines[] = null;
if(consolidated!="")
{
newlines=consolidated.split("---------------------SAVED BY ####### ----------------");
}