我试图理解为什么开发从reshape
转移到了reshape2
包。它们似乎在功能上相同,然而,由于服务器上运行的R版本较老,我目前无法升级到reshape2
。我担心可能会有一个严重的错误导致开发人员不得不转向全新的包,而不是简单地继续开发reshape
。是否有人知道reshape
包存在重大缺陷?
我试图理解为什么开发从reshape
转移到了reshape2
包。它们似乎在功能上相同,然而,由于服务器上运行的R版本较老,我目前无法升级到reshape2
。我担心可能会有一个严重的错误导致开发人员不得不转向全新的包,而不是简单地继续开发reshape
。是否有人知道reshape
包存在重大缺陷?
reshape2
是一个重新启动的 reshape
包,它比原始包要快得多,同时避免了破坏用户的依赖和习惯。
https://stat.ethz.ch/pipermail/r-packages/2010/001169.html
reshape2
是重启reshape
包的一个版本。自包的第一个版本发布以来已经过去了五年时间,在这段时间里,我学到了大量有关 R 编程和如何在 R 中处理数据的知识。reshape2 利用这些知识创建了一个新的数据重塑包,它更加专注且速度更快。这个版本在提高速度的同时减少了一些功能,因此我将其重命名为
reshape2
,以避免给现有用户带来麻烦。根据用户反馈,我可能会重新引入其中一些功能。
reshape2
的新特性:
采用更好的底层算法,利用子集的强大速度,大大提高了速度和内存效率,在大多数情况下只需对数据进行单次复制。
根据输出类型,
cast
被两个函数替换:dcast
生成数据框,acast
生成矩阵/数组。现在支持多维边距:已经删除了
grand_row
和grand_col
,现在边距的名称指的是其值设置为 (all) 的变量。删除了一些功能,例如
|
cast 运算符和从聚合函数返回多个值的能力。我相信这些操作都可以由 plyr 更好地执行。引入了新的转换语法,可以根据变量函数来进行数据重塑(基于与plyr相同的底层语法):
采用更好的开发实践,例如命名空间和测试。