这里更好意味着更快或更易于阅读/更短的语法,也可能意味着该命令在data.table
中甚至不可行。当plyr比data.table更好吗?
我不使用plyr
很多,并想知道是否有案件,当我应该。因为我没有使用它很多,我能想出的唯一例子是rbind.fill
,据我所知没有data.table
模拟和我见过的所有其他示例在plyr
和data.table
中均已完成,后者更快,更容易阅读/更紧凑。
这里更好意味着更快或更易于阅读/更短的语法,也可能意味着该命令在data.table
中甚至不可行。当plyr比data.table更好吗?
我不使用plyr
很多,并想知道是否有案件,当我应该。因为我没有使用它很多,我能想出的唯一例子是rbind.fill
,据我所知没有data.table
模拟和我见过的所有其他示例在plyr
和data.table
中均已完成,后者更快,更容易阅读/更紧凑。
它们是不同目的的不同软件包。一个不能替代另一个,尽管它们有一小部分功能重叠。
下面是每个包的简要总结,从包装自己:
的plyr包是一组的,在R.实施拆分申请,结合图案清晰一致的工具,这是一个数据分析中非常常见的模式:通过将问题分解成小块来解决复杂问题,对每个块做一些事情,然后再将这些结果重新组合起来。
和
data.table
...提供了快速的子集,快速分组,快速更新,快速有序的连接和列表列在很短的和灵活的语法,为更快的发展。它受到R中A [B]语法的启发,其中A是矩阵,B是2列矩阵。
它们重叠是在“快分组”这plyr也确实通过拆分data.frames,上个工作,并把它们重新组合成一个单一的data.frame。 data.table
还有许多其他功能可以使数据框架像结构一样快速运行; plyr
具有将分裂应用组合范例应用于其他数据结构(例如列表和数组(作为输入和输出))的特征。
实际上,它们是两个不同的工具,它们碰巧有一个重叠的小区域,它们解决了相同的问题域,但每个工具的作用远不止于此,如果您想要/需要该附加功能,那么该包应该使用。
这太宽了。 – 2013-04-22 18:30:25
** plyr **不会(通常)比** data.table **更快。有些人(比如我自己)发现前者的语法比后者更直观和可读。但那只是一个主观选择。 – joran 2013-04-22 18:30:55
@Arun thx,我会看看这些功能。 'plyr'对'data.frame'做的更好吗? – eddi 2013-04-22 18:40:14