rem*_*rth 44 r data.table
显然在我的上一个问题中,我表现出了data.frame和之间的混淆data.table.不可否认,我没有意识到有区别.
所以我读了每个人的帮助,但是在实际的日常用语中,有什么不同,含义是什么以及每个用于什么会有助于指导我们适当的用法?
Ric*_*rta 61
虽然这是一个广泛的问题,但如果有人R不熟悉这可能会令人困惑,这种区别可能会丢失.
所有的data.tables都是data.frames.简而言之,您可以将data.tables视为具有额外功能的data.frames.
data.frame是基地的一部分R.
data.table是一个扩展的包data.frames.它最显着的两个特点是速度和更清晰的语法.
然而,该语法糖与data.frame的标准R语法不同,而未经训练的眼睛难以一目了然地区分.因此,如果您阅读了代码段并且没有其他上下文指示您正在使用data.tables并尝试将代码应用于data.frame,则可能会失败或产生意外结果.(一个明确的赠品,你正在使用d.t's,除了library/ requirecall是赋值运算符的存在,:=这是dt独有的)
尽管如此,我认为很难真正体会到data.table没有经历缺点的美感data.frame.(例如,请参阅@ eddi答案的前3个要点).换句话说,我非常建议先学习如何使用和操作,data.frames然后再继续操作data.table.
edd*_*ddi 33
我想到的日常生活中的一些差异(没有特别的顺序):
data.table在表达式中反复指定名称(导致笨拙的语法和愚蠢的错误)(另一方面,我有时会错过名称的TAB完成)by操作df,忘记了多大df(也导致几乎从不使用head)fread%between%或rbindlist使生活更美好data.frame操作不必要地复制整个事情它们很相似.数据帧是相等长度的向量列表,而数据表(data.table)是数据帧的继承.因此,数据表是数据帧,但数据帧不一定是数据表.编写数据表包和函数是为了提高索引,有序连接,赋值,分组和列出列(等)的速度.
有关更多信息,请参见http://datatable.r-forge.r-project.org/datatable-intro.pdf.