r语言中如何使用reshape2包将宽型数据转换成长型数据


这篇文章主要介绍了r语言中如何使用reshape2包将宽型数据转换成长型数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇r语言中如何使用resha免费云主机域名pe2包将宽型数据转换成长型数据文章都会有所收获,下面我们一起来看看吧。对于宽型数据,每列代表一个不同的变量。例如datasets包中的mtcars数据集就是宽型数据:对于长型数据,一列包含了所有可能的变量,另一列是对应的取值。上面的数据可以用长型数据来表示:长型数据可以包含两个以上的列,尤其是提供ID变量的时候。如下所述。在实际应用中,宽型数据更具可读性,长型数据则更适合做分析。因此,知道如何在它们之间进行转换非常有用。reshape2包中两个主要的函数是:melt——将宽型数据融合成长型数据cast——将长型数据转成宽型数据接下来,我们在datasets包中的mtcars数据集上进行操作。它一开始是上面展示的宽型数据。我们要把它融合成下面的长型数据:注:译者在R里得到的是melt自动选取car作为ID变量,原文是选取car和cyl作为ID变量。要得到相同结果只需在参数id.vars中指定相应变量即可。我们可以通过参数variable.name和value.name分别对variable和value列重命名。例如,我们想对所有的汽车根据它的汽缸数和齿轮数做分类。可以像下面这样:通常,使用变量组合来唯一的识别每个数据点个好办法,但是这里有多个点的cyl和gear组合值却是相同的,这不是好的办法。当你需要把数据转回宽型数据时会有点问题了(下面会看到)。cast函数的作用是将长型数据转成宽型数据。cast函数的两种主要类型是:dcast——返回的结果是一个数据框acast——返回的结果可以是向量、矩阵或者数组由于数据框对象是最常见的,我将演示如何使用dcast。下面展示的是长型数据转回成宽型数据:dcast函数通过一个式子来把数据转成宽型数据。在本篇译文中,由于我在R上自动的到ID变量只有car,所以我给出的式子是car ~ variable。这里car是ID变量,variable变量列的名称。要想跟原文一样只需在melt时指定id.vars参数即可。如果我们指定cyl和gear作为ID变量融合数据后,再转回宽型变量时,会得到如下所示的结果:会得到警告信息:Aggregation function missing: defaulting to length。数据集显示的是每个cyl和gear组合的总的观测数。这是因为dcast函数不能唯一标识每个数据点。然而,它还有其他用处。例如,我们通过如下所示的fun.aggregate参数可以得到每个cyl和gear组合值所对应的所有变量的平均值。这里,我们删除了car列。这是因为我们不希望在mtcarsMelt的value列里存在非数值型数据,否则会得到错误。关于“r语言中如何使用reshape2包将宽型数据转换成长型数据”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“r语言中如何使用reshape2包将宽型数据转换成长型数据”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: Javascript如何使用.call()和.apply()编写更好的代码

小编给大家分享一下Javascript如何使用.call()和.apply()编写更好的代码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Javascript函数对象的原型公开了两个有价值的方法,分别是call()和apply()。首先,让我…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/03 11:14
下一篇 09/03 11:14

相关推荐