0

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

我不使用plyr很多,想知道是否有我应该使用的情况。因为我不经常使用它,所以我能想出的唯一例子是rbind.fill,据我所知,没有data.table类似的例子,而我见过的所有其他例子都在plyr和中完成data.table,后者更快并且更容易阅读/更紧凑。

4

1 回答 1

14

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

以下是每个包的简要摘要,来自包本身:

plyr 包是一组干净且一致的工具,用于在 R 中实现拆分-应用-组合模式。这是数据分析中极为常见的模式:您可以通过将复杂问题分解成小块,对每个小块做一些事情来解决它一块,然后将结果再次组合在一起。

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

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

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

于 2013-04-22T18:30:02.830 回答