R语言-data.table包

本文介绍了R语言中强大的data.table包,该包提供了快速的数据读取、筛选、分组、排序和联表等操作。data.table的fread函数在处理大型CSV文件时表现出色,且其语法简洁灵活,兼容大部分data.frame函数。此外,data.table的标志性特性如使用""i"
摘要由CSDN通过智能技术生成

待到最近才发现了这么一个牛逼的包 data.table。它的fread函数读取1G的CSV文件才用了20s左右。其他对data.frame的操作,也快了N倍。这篇笔记包括简介,data.table的特点,速度比较,常见语法。

  • 简介
    data.table继承于data.frame。它提供了一个快速通道,让我们能更加快速的读取文件,对数据进行筛选、分组、排序、联表,而且其语法灵活、简介。由于data.table是一个data.frame所以它几乎兼容所有的函数。

  • 特点

    1. data.table(DT)的操作语句类似于SQL,DT[i, j, by]中的i, j, by 对应着SQL语句的 i=where, j=select, by=group by。所以DT中的i, j并不是只是像data.frame只代表着行列,它更加的灵活多变。
    2. 符号 ” := “快速的增加或者删除列,类似SQL的update。
    3. setkey(DT, colA, colB),可以使得检索和分组更加快速
    4. order,快速多重排序, 例如对DT按照x,y进行排序DT[order(DT$x, -DT$y),]或者DT[with(DT, order(x, -y)),]
  • compare
    包括使用DT使用Key后与DF的检索速度对比。
    快速分组(需要设置KEY),进行计算,和使用tapply分组计算速度

###生成数据
grpsize <- ceiling(1e7/26^2)  ##10^7 rows, 676 groups
DF <- data.frame(x=rep(LETTERS,each=26*grpsize),
    y=rep(letters,each=grpsize), v=runif(grpsize*26^2),
    stringsAsFactors=FALSE)
head(DF,3)
  x y     v
1 A a 0.5310106
2 A a 0.1980941
3 A a 0.8835322

DT <- as.data.table(DF) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值