data.table包|R包
“R包众多,如何选择?如何学习?如何应用?如同三把斧,摆在每位学R和用R的数据人面前,如何轻松自如挥舞,仁者见仁、智者见智!”
从今天开始,陆续推出一系列关于好用的R包的文章,欢迎各位数据人反馈、留言、投稿。
data.table包是对R语言数据框Data.frame的扩展和延伸。
data.table要做的事情?
“Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns and a fast file reader (fread). Offers a natural and flexible syntax, for faster development.”
data.table使用举例
要用data.table,首先要加载这个包,若是没有安装此包,那就先安装再加载。
if(!suppressWarnings(require(data.table)))
{
install.packages(‘data.table’)
require(data.table)
}
用例一:创建data.table数据结构
方法一:利用data.table()函数
> DT <- data.table(x=c(‘b’,’b’,’b’,’a’,’a’), v=rnorm(5))
> DT
x v
1: b 1.6125264
2: b 1.5389714
3: b -0.5060711
4: a -2.3383927
5: a 0.1448398
方法二:data.frame数据结构—>data.table数据结构
> CARS <- data.table(cars)
> head(CARS)
speed dist
1: 4 2
2: 4 10
3: 7 4
4: 7 22
5: 8 16
6: 9 10
思考:data.frame数据结构和data.table数据结构有什么差异?
用例二:查看data.table数据结构内存状况
> tables()
NAME NROW NCOL MB COLS KEY
[1,] CARS 50 2 1 speed,dist
[2,] DT 5 2 1 x,v
Total: 2MB
用例三:Key-Value应用
> setkey(DT, x)
> DT
x v
1: a -2.3383927
2: a 0.1448398
3: b 1.6125264
4: b 1.5389714
5: b -0.5060711
> tables()
NAME NROW NCOL MB COLS KEY
[1,] CARS 50 2 1 speed,dist
[2,] DT 5 2 1 x,v x
Total: 2MB
DT已经有Key了,为x。
利用Key获取Value
> DT[‘b’]
x v
1: b 1.6125264
2: b 1.5389714
3: b -0.5060711
> DT[‘b’, mult=’first’]
x v
1: b 1.612526
关于快速地分区聚合和连接,进入下面连接:
https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.pdf
关于data.table包更详细的介绍和说明,进入下面链接:
https://cran.r-project.org/web/packages/data.table/index.html
各位数据人,你们用data.table包吗?你用它里面的那些函数,解决什么问题?期待你参与讨论。
下回介绍XML包,请继续关注和分享!
数据人网是数据人学习、交流和分享的平台http://shujuren.org。
点击【阅读原文】,体验【数据人网】
数据人网向各位数据人推荐这些公众号,长按图片,识别二维码,一键关注。
公众号1:数据科学自媒体,分享数据科学干货。
公众号2:脚印英语JoyEnglish,带你说一口流利英语。
公众号3:区块链科技金融,研究区块链技术,探索区块链应用。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!