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_row
和grand_col
已被删除:现在边距的名称是指 将其值设置为 (all) 的变量。已删除某些功能,例如
|
转换运算符,以及 从聚合函数返回多个值的能力。 我有理由确定这两个操作都可以更好地执行 plyr.一种新的转换语法,可让您根据函数重塑形状 变量(基于与 plyr 相同的底层语法):
更好的开发实践,例如命名空间和测试。
【讨论】:
谢谢马特!感谢您将邮件列表中的此内容发布到此处更广为人知的论坛。 从聚合函数返回多个值的能力参见相关问题:***.com/questions/21477040/…以上是关于R中的reshape与reshape2的主要内容,如果未能解决你的问题,请参考以下文章
tidyr::gather 与 reshape2::melt 矩阵