何时plyr比data.table更好?

时间:2013-04-22 18:18:53

标签: r data.table plyr

这里更好的意思是更快或更容易阅读/缩短语法,或者也可能意味着命令在data.table中甚至无法实现。

我不是经常使用plyr,而是想知道我是否应该这样做。因为我不经常使用它,我能想出的唯一例子是rbind.fill据我所知,没有data.table类比,而我见过的其他每个例子都是smth在plyrdata.table完成,后者更快,更容易阅读/更紧凑。

1 个答案:

答案 0 :(得分:14)

它们是具有不同用途的不同包装。一个不能替代另一个,尽管它们有一小部分功能重叠。

以下是每个包的简要概述,包装本身:

  

plyr包是一组干净且一致的工具,在R中实现split-apply-combine模式。这是数据分析中极为常见的模式:通过将其分解成小块来解决复杂问题,每件作品然后再将结果重新组合在一起。

  

data.table ...以简短灵活的语法提供快速子集,快速分组,快速更新,快速排序的连接和列表列,以加快开发速度。它的灵感来自R中的A [B]语法,其中A是矩阵,B是2列矩阵。

它们重叠的位置是“快速分组”,plyr也可以通过分割data.frames,对片段进行操作,并将它们重新组合成单​​个data.frame来实现。 data.table还有许多其他功能可以使data.frame上的操作像结构一样快; plyr具有将split-apply-combine范例应用于其他数据结构(如列表和数组(作为输入和输出))的功能。

所以,实际上,它们是两个不同的工具碰巧有一个小的重叠区域,它们解决了相同的问题域,但是每个工具都做得多,如果你想要/需要那些额外的功能,那么那个包应该是使用