R中的数据重塑用法图解

本文概述

  • 转置矩阵
  • 在数据框中连接行和列
  • 合并数据框
  • 熔铸
在R中, 数据重塑是关于更改将数据组织成行和列的方式。在R中, 通过将输入作为数据帧来完成数据处理。从数据帧的行和列中提取数据要容易得多, 但是当我们需要的数据帧的格式与接收数据的格式不同时, 就会出现问题。 R提供了许多功能, 可以将数据帧中的行合并, 拆分和更改为列, 反之亦然。
R中的数据重塑用法图解

文章图片
转置矩阵 R使我们能够通过提供t()函数来计算矩阵或数据帧的转置。此t()函数将矩阵或数据帧作为输入, 并返回输入矩阵或数据帧的转置。 t()函数的语法如下:
t(Matrix/data frame)

让我们看一个例子来了解如何使用此功能
例子
a < - matrix(c(4:12), nrow=3, byrow=TRUE)aprint("Matrix after transpose\n")b < - t(a)b

输出
R中的数据重塑用法图解

文章图片
在数据框中连接行和列 R允许我们连接多个向量以创建数据帧。为此, R提供了cbind()函数。 R还提供了rbind()函数, 该函数允许我们合并两个数据帧。在某些情况下, 我们需要合并数据帧以访问依赖于这两个数据帧的信息。 cbind()函数和rbind()函数具有以下语法。
cbind(vector1, vector2, .......vectorN)rbind(dataframe1, dataframe2, ........dataframeN)

【R中的数据重塑用法图解】让我们看一个示例, 以了解如何使用cbind()和rbind()函数。
例子
#Creating vector objectsName < - c("Shubham Rastogi", "Nishka Jain", "Gunjan Garg", "Sumit Chaudhary")Address < - c("Moradabad", "Etah", "Sambhal", "Khurja")Marks < - c(255, 355, 455, 655)#Combining vectors into one data frameinfo < - cbind(Name, Address, Marks)#Printing data frameprint(info)# Creating another data frame with similar columnsnew.stuinfo < - data.frame( Name = c("Deepmala", "Arun"), Address = c("Khurja", "Moradabad"), Marks = c("755", "855"), stringsAsFactors=FALSE)#Printing a header.cat("# # # The Second data frame\n") #Printing the data frame.print(new.stuinfo)# Combining rows form both the data frames.all.info < - rbind(info, new.stuinfo)# Printing a header.cat("# # # The combined data frame\n") # Printing the result.print(all.info)

输出
R中的数据重塑用法图解

文章图片
合并数据框 R提供merge()函数来合并两个数据帧。在合并过程中, 存在一个约束, 即;数据框必须具有相同的列名。
让我们以一个示例为例, 在该示例中, 我们获取” MASS” 库中存在的有关Pima Indian Women中糖尿病的数据集。我们将根据血压值和体重指数合并两个数据集。选择这两列进行合并时, 两个数据集中这两个变量的值匹配的记录将合并在一起以形成一个数据框。
例子
library(MASS)merging_pima< - merge(x = Pima.te, y = Pima.tr, by.x = c("bp", "bmi"), by.y = c("bp", "bmi"))print(merging_pima)nrow(merging_pima)

输出
R中的数据重塑用法图解

文章图片
熔铸 在R中, 最重要和最有趣的主题是关于分多个步骤更改数据的形状以获得所需的形状。为此, R提供了melt()和cast()函数。要了解其过程, 请考虑存在于MASS库中的称为ships的数据集。
例子
library(MASS)print(ships)

输出
R中的数据重塑用法图解

文章图片
融化数据
现在, 我们将使用上面的数据通过融合来组织它。熔化是指将列转换为多行。我们会将上述数据集的类型和年份以外的所有列转换为多行。
例子
library(MASS)library(reshape2)molten_ships < - melt(ships, id = c("type", "year"))print(molten_ships)

输出
R中的数据重塑用法图解

文章图片
熔解数据的铸造
融合数据后, 我们可以将其转换为新的形式, 以创建每年每种船舶的汇总。为此, R提供了cast()函数。
让我们开始进行合并数据的转换。
例子
library(MASS)library(reshape2)#Melting the datamolten.ships < - melt(ships, id = c("type", "year"))print("Molted Data")print(molten.ships)#Casting of datarecasted.ship < - dcast(molten.ships, type+year~variable, sum)print("Cast Data")print(recasted.ship)

输出
R中的数据重塑用法图解

文章图片

    推荐阅读