比较读取 CSV 与 RDS 文件的时间
我们经常要做的一项任务是从 CSV 文件读取数据。不过,对于大型 CSV 文件,这可能会很慢。
一个实用的小技巧是,先读取数据并将其保存为 R 二进制文件(rds),使用 saveRDS()。
要读取 rds 文件,我们使用 readRDS()。
注意:由于 rds 是 R 用于存储单个对象的原生格式,您并未引入将来可能变化的第三方依赖。
要对这两种方法进行基准测试,您可以使用 system.time()。
该函数会返回评估任意 R 表达式所花费的时间。例如,若要计时从 1 到 1,000 万求平方根所需的时间,您可以这样写:
system.time(sqrt(1:1e7))
本练习是课程的一部分
高效 R 代码写作
练习说明
文件 "movies.csv" 与 "movies.rds" 都包含相同的数据框,记录了 45,000 部电影的信息。
- 使用
system.time()函数,测量用read.csv("movies.csv")读取 CSV 文件所需的时间。 - 对
"movies.rds"的 rds 文件重复上述步骤,使用readRDS()。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# How long does it take to read movies from CSV?
system.time(read.csv(___))
# How long does it take to read movies from RDS?
___