当前位置: 首页 > 编程笔记 >

R重塑数据

令狐新翰
2023-03-14
本文向大家介绍R重塑数据,包括了R重塑数据的使用技巧和注意事项,需要的朋友参考一下

示例

数据通常在表中。通常,可以将此表格数据分为宽和长格式。在广泛的格式中,每个变量都有自己的列。

身高[cm] 年龄[yr]
艾莉森 178 20
鲍勃 174 45
卡尔 182 31

但是,有时使用长格式会更方便,因为所有变量都在一列中,而值在第二列中。

变量
艾莉森 身高[cm] 178
鲍勃 身高[cm] 174
卡尔 身高[cm] 182
艾莉森 年龄[yr] 20
鲍勃 年龄[yr] 45
卡尔 年龄[yr] 31

Base R和第三方程序包可用于简化此过程。对于每个选项,mtcars将使用数据集。默认情况下,该数据集为长格式。为了使程序包正常工作,我们将把行名插入第一列。

mtcars # shows the dataset
data <- data.frame(observation=row.names(mtcars),mtcars)

基数R

base R中有两个函数可用于在宽格式和长格式之间进行转换:stack()和unstack()。

long <- stack(data)
long # this shows the long format
wide <- unstack(long)    
wide # this shows the wide format

但是,对于更高级的用例,这些功能可能会变得非常复杂。幸运的是,还有其他使用第三方软件包的选项。

提迪尔包

该软件包用于gather()从宽到长的spread()转换以及从长到宽的转换。

library(tidyr)
long <- gather(data, variable, value, 2:12) # where variable is the name of the 
# variable column, value indicates the name of the value column and 2:12 refers to
# the columns to be converted.
long # shows the long result
wide <- spread(long,variable,value)
wide # shows the wide result (~data)

该data.table包

该data.table包扩展的reshape2功能和使用功能,melt()从广角到去长,dcast()从长期去宽。

library(data.table)
long <- melt(data,'observation',2:12,'variable', 'value')
long # shows the long result
wide <- dcast(long, observation ~ variable)
wide # shows the wide result (~data)
           

 类似资料:
  • 主要内容:在数据框中连接列和行,合并数据帧,拆分数据和重构数据,拆分数据,重构数据R中的数据重整是关于将数据组织成行和列的方式。 R中的大多数时间数据处理是通过将输入数据作为数据帧来完成的。 很容易从数据帧的行和列中提取数据,但是有些情况下,我们需要的格式与收到的格式不同。 R具有许多函数,用于在数据帧中拆分,合并和更改行到列,反之亦然。 在数据框中连接列和行 我们可以使用函数连接多个向量来创建数据帧。也可以使用函数合并两个数据帧。 当我们执行上述代码时,会产生以下结果 - 合

  • 本文向大家介绍R 语言重塑函数,包括了R 语言重塑函数的使用技巧和注意事项,需要的朋友参考一下 示例 用于重塑数据的最灵活的基本R函数是reshape。 请注意,data.frames是不平衡的,也就是说,单元2在第一个周期中缺少观测值,而单元3和4在第二个周期中缺少观测值。另外,请注意,有两个变量随时间变化:计数和值,以及两个不变的变量:标识符和位置。 长到宽 要重塑data.frame宽幅格式

  • 问题内容: 我有一个熊猫系列,目前看起来像这样: 我想从根本上将其重塑成一个看起来像这样的数据框… 即。逻辑构造,指出每个观察(行)属于哪个类别。 我能够编写基于循环的代码来解决该问题,但是鉴于我需要处理的行数众多,这将非常缓慢。 有谁知道针对这种问题的矢量化解决方案?我将不胜感激。 编辑:有509个类别,我确实有一个清单。 问题答案:

  • R中的数据重塑是关于改变数据组织成行和列的方式。 大多数情况下,R中的数据处理是通过将输入数据作为数据帧来完成的。 从数据帧的行和列中提取数据很容易,但有些情况下我们需要的数据帧格式与我们收到它的格式不同。 R具有许多功能,可以在数据帧中拆分,合并和更改行到列,反之亦然。 在数据框中加入列和行 我们可以使用cbind()函数连接多个向量来创建数据框。 我们也可以使用rbind()函数合并两个数据帧

  • 这似乎是非常基本的知识,但我还是卡住了,尽管我有一些数据处理的理论背景(通过其他软件)。值得一提的是,我是蟒蛇和熊猫图书馆的新手。 我的任务是将系列名称列的值作为单独的列(从长到宽转换)。我花了很长时间尝试不同的方法,但只有错误。 例如: 我犯了一个错误: ...很多短信...通过值的长度是2487175,索引暗示2 有谁能指导我完成这个过程吗?谢谢 它用于代码“mydata=mydata”。pi

  • 我有一个数据框架,目前看起来是这样的, 数据框架1 我需要创建一个像这样的数据帧。 数据框架2 我需要从数据帧1列的值填充数据帧2的列。图片显示了示例。对此应该有什么算法和过程? 这是示例数据集