初识 iotools:导入数据

R 的可扩展数据处理

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

分块处理

  1. 加载数据片段
  2. 转为原生对象
  3. 计算并保存结果

重复 1–3,直到处理完全部数据

R 的可扩展数据处理

导入数据

  • 数据加载常比处理更耗时,且分两步进行
    • 从磁盘读取数据相对较慢
    • 将原始数据转换为 R 原生对象
R 的可扩展数据处理

使用 iotools 导入数据

在 iotools 中,数据的物理加载与解析为 R 对象相分离,以提升灵活性与性能。

R 的可扩展数据处理

iotools:导入数据

  • readAsRaw() 将全部数据读入原始向量
  • read.chunk() 分块读入数据为原始向量
R 的可扩展数据处理

iotools:解析数据

  • mstrsplit() 将原始数据转换为矩阵
  • dstrsplit() 将原始数据转换为数据框
R 的可扩展数据处理

iotools:加载与解析数据

read.delim.raw() = readAsRaw() + dstrsplit()

R 的可扩展数据处理

分块处理

  • 无需一次性导入全部数据
  • 每次从数据源读取一"块"行
  • 无中间结构
R 的可扩展数据处理

文件连接

# 打开文件连接
fc <- file("data-file.csv", "rb")
# 如有表头,读取首行
readLines(fc, n = 1)
....
# 导入并解析数据的代码
....
# 关闭文件连接
close(fc)
R 的可扩展数据处理

让我们练习吧!

R 的可扩展数据处理

Preparing Video For Download...