data.tabledata.table入门


备注

Data.table是R统计计算环境的包。它扩展了基础R的数据帧功能,特别是改进了它们的性能和语法。许多相关任务,包括滚动和非等联接,都以一致的简洁语法处理,如DT[where, select|update|do, by]

包中还包括许多补充功能:

  • I / O: fread / fwrite
  • 重塑: melt / dcast / rbindlist / split
  • 运行价值: rleid

版本

笔记 CRAN上的发布日期
1.9.4 2014年10月2日
1.9.6 2015年9月19日
1.9.8 2016年11月24日
1.10.0 “事后看来,最后一个版本v1.9.8应该被命名为v1.10.0” 2016年12月3日
1.10.1 开发中 2016年12月3日

入门并寻求帮助

该软件包的官方维基有一些基本材料:

有关各个函数的帮助,语法是help("fread")?fread 。如果尚未加载包,请使用全名,如?data.table::fread

安装和设置

从CRAN安装稳定版本:

install.packages("data.table")       
 

或者来自github的开发版本:

install.packages("data.table", type = "source", 
  repos = "http://Rdatatable.github.io/data.table")
 

要从devel还原为CRAN,必须首先删除当前版本:

remove.packages("data.table")
install.packages("data.table")
 

访问网站以获取完整的安装说明和最新版本号。

使用包

通常,您需要使用类似的行加载包及其所有函数

library(data.table)
 

如果您只需要一个或两个函数,则可以将它们data.table::fread

语法和功能

基本语法

DT[where, select|update|do, by] 语法用于处理data.table的列。

  • “where”部分是i 参数
  • “select | update | do”部分是j 参数

这两个参数通常按位置而不是按名称传递。

一系列步骤可以像DT[...][...] 一样链接。

DT[...] 内的快捷方式,特殊功能和特殊符号DT[...]

功能或符号笔记
.() 在几个参数中,替换list()
J() i ,替换list()
:= j ,用于添加或修改列的函数
.N i ,总行数
j ,组中的行数
.I j ,表中行号的向量(由i 过滤)
.SD j ,数据的当前子集
.SDcols 参数选择
.GRP j ,数据子集的当前索引
.BY j ,当前数据子集的值列表
V1, V2, ... j 创建的未命名列的默认名称

加入DT[...]

符号笔记
DT1[DT2, on, j] 加入两个表
i.* 连接后DT2列上的特殊前缀
by=.EACHI 特殊选项仅适用于连接
DT1[!DT2, on, j] 反连接两个表
DT1[DT2, on, roll, j] 连接两个表,在on= 的最后一列on= 滚动

重塑,堆叠和分裂

符号笔记
melt(DT, id.vars, measure.vars) 转换为长格式
对于多列,请使用measure.vars = patterns(...)
dcast(DT, formula) 转换为宽格式
rbind(DT1, DT2, ...) stack枚举data.tables
rbindlist(DT_list, idcol) 堆栈data.tables列表
split(DT, by) 将data.table拆分为一个列表

其他一些专门用于data.tables的函数

功能) 笔记
foverlaps 重叠连接
merge 另一种连接两个表的方法
set 添加或修改列的另一种方法
fintersectfsetdiff
funionfsetequal
uniqueduplicatedanyDuplicated duplicated
以行作为元素的集合理论操作
CJ 矢量的笛卡尔积
uniqueN 不同行的数量
rowidv(DT, cols) 由cols确定的每个组内的行ID(1到.N)
rleidv(DT, cols) 通过cols运行确定的每个组内的组ID(1到.GRP)
shift(DT, n) 将移位运算符应用于每列
setordersetcolorder
setnamessetkeysetindex
setattr
通过引用修改属性和顺序

包的其他功能

特征笔记
IDateITime 整数日期和时间