data.table可以扩展和增强data.frame的功能,在分组操作和组合时访问速度更快。

require(data.table)
theDT = data.table(A=1:10, B=letters[1:10], C=letters[11:20], D=rep(c("one", "two", "three"), length.out=10))
# data.frame会将字符型数据转化为factor,而data.table不会,这里仍是character
class(theDT$B)
library(ggplot2)
# 将data.frame数据转化为data.table
diamondsDT = data.table(diamonds)

# 访问方法类似,但是以下两种才能返回列向量
theDT[,list(A, C)]
theDT[, c("A", "C"), with=FALSE]
# 只返回一行,数据的结构性被破坏
theDT[, c(A, C)]

data.table一个重要特性是可以设置指针,设置了之后,可以用指针的值来访问行数据。

可以通过tables()查看当前所有data.table的信息;可以用key(tableName)查看已经设置的指针key

# D没引号
setkey(theDT, D)
# 可以将多个列设为指针
setkey(diamondsDT, cut, color)
# Ideal是cut的取值,E,D是color的取值
diamondsDT[J("Ideal", c("E", "D")), ]

汇总数据:这里是按照cut和color汇总(先以cut分,同一cut下再按color分),汇总的方法是对price取均值,对carat取总和

使用list的地方也可以是单个变量,总之非常灵活。

diamondsDT[, list(price=mean(price), caratSum=sum(carat)), by=list(cut,color)]

  

最新文章

  1. 常用ubuntu命令
  2. 在c#中把字符串转为变量名并获取变量值的小例子(转)
  3. python--安装PIL
  4. Redis系列-存储篇sorted set主要操作函数小结
  5. mybatis02 架构
  6. ethtool的基本设置
  7. 基于Jquery的多彩二维码的生成
  8. spring 框架的 @Autowired 和 @Resource 两种注解的区别
  9. 部署网站: 配置项目到iis上运行报目录错误
  10. 如何去掉word中的回车符??
  11. Jmeter使用JDBC请求简介
  12. RESTful-3架构详解
  13. 下载 youtube 油管的视频
  14. sudo passwd root输入普通用户密码后显示用户不再sudoers文件中
  15. BZOJ1407: [Noi2002]Savage exgcd
  16. C语言程序设计I—第三周教学
  17. C++函数不能为virtual的场景
  18. vue插件vue-infinite-loading的使用
  19. [EffectiveC++]item33:避免遮掩继承而来的名称。
  20. java模拟从http上下载文件

热门文章

  1. Kali下安装rar
  2. vs2012 support BI
  3. 基于CDH5.7.x Kylin部署
  4. 网络编程之异步IO,rabbitMQ笔记
  5. MyBatis学习总结(一)
  6. ServletContext--HttpServletResponse--web项目执行流程
  7. 新项目升级到JFinal3.5之后的改变-着重体验自动依赖注入
  8. SqlServer 填充因子的说明
  9. 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur
  10. C#注册表操作类(完整版)