何时plyr比data.table更好?

edd*_*ddi 0 r plyr data.table

这里更好的意思是更快或更容易阅读/更短的语法,或者它也可能意味着命令甚至不可行data.table.

我不plyr经常使用,想知道我是否应该这样做.因为我不使用它了很多,唯一的例子,我能想出的rbind.fill是,据我所知没有一个data.table模拟和我见过未便每隔例如两个正在做plyrdata.table,后者是更快,更容易阅读/更紧凑.

Bri*_*ggs 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范例应用于其他数据结构(如列表和数组(作为输入和输出))的功能.

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