R中的reshape与reshape2

Posted

技术标签:

【中文标题】R中的reshape与reshape2【英文标题】:reshape vs. reshape2 in R 【发布时间】:2012-09-04 20:00:11 【问题描述】:

我试图理解为什么开发从reshape 转移到reshape2 包。它们在功能上似乎相同,但是,由于服务器上运行的是旧版本的 R,我目前无法升级到 reshape2。我担心一个重大错误的可能性,它将开发转移到一个全新的包,而不是简单地继续开发reshape。有谁知道reshape 包中是否存在重大缺陷?

【问题讨论】:

reshape2 替换为 reshape。但是你的问题是什么? 你找到了官方文档吧? cran.r-project.org/web/packages/reshape2/reshape2.pdf这个reshape2的使用说明如何? wiki.stdout.org/rcookbook/Manipulating%20data/… 重塑是在旧版本的包上。根据我的观察,Hadley Wickham 非常关心破解依赖他的包的人的代码。我猜 reshape 需要一些大修,而不是破坏每个人的代码 eh 从头开始​​(我猜)。在功能和用法上有一些差异,但它们的 kobs 非常相似。我建议你坚持使用 reshape2,因为我不相信 reshape 正在开发中。 @Maiasaura,我无法升级到 reshape2,因为我的系统管理员运行的是旧版本的 R。因此,我需要知道是否存在导致 Hadley 构建 reshape2 的主要错误。跨度> 所以听起来你真正的(并且可以回答的)问题是:“Hadley Wickham 是否因为 reshape中的一个重大错误而将他的努力转移到 reshape2 >?” 【参考方案1】:

reshape2 让 Hadley 重新启动 reshape,这样更快,同时避免破坏人们的依赖和习惯。

https://stat.ethz.ch/pipermail/r-packages/2010/001169.html

Reshape2 是 reshape 包的重新启动。已经五年多了 自从软件包的第一次发布以来,在那段时间我学到了 大量关于 R 编程,以及如何在 R. Reshape2 使用这些知识来制作一个用于重塑的新包 数据更集中、速度更快。

这个版本以牺牲功能为代价提高了速度,所以我有 将其重命名为 reshape2 以避免给现有用户造成问题。 根据用户反馈,我可能会重新引入其中一些功能。

reshape2 的新功能:

速度更快,内存效率更高,这要归功于 更好的底层算法,它使用了 最大限度地进行子集化,在大多数情况下只做一个 数据的单一副本。

cast 被两个函数替换,具体取决于输出类型: dcast 生成数据帧,acast 生成矩阵/数组。

现在可以使用多维边距:grand_rowgrand_col 已被删除:现在边距的名称是指 将其值设置为 (all) 的变量。

已删除某些功能,例如 | 转换运算符,以及 从聚合函数返回多个值的能力。 我有理由确定这两个操作都可以更好地执行 plyr.

一种新的转换语法,可让您根据函数重塑形状 变量(基于与 plyr 相同的底层语法):

更好的开发实践,例如命名空间和测试。

【讨论】:

谢谢马特!感谢您将邮件列表中的此内容发布到此处更广为人知的论坛。 从聚合函数返回多个值的能力参见相关问题:***.com/questions/21477040/…

以上是关于R中的reshape与reshape2的主要内容,如果未能解决你的问题,请参考以下文章

tidyr::gather 与 reshape2::melt 矩阵

R语言学习 第十三篇:利用reshape2包重塑数据

如何使用 reshape r “解开”数据

长到宽R中的多个变量

透视逆透视:R语言(reshape2tidyverse),Excel,Python

R:reshape2 long to wide 用 1 到 3 之间的整数替换实数值