个性化阅读
专注于IT技术分析

R中的数据重塑用法图解

本文概述

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

R中的数据重塑用法图解

转置矩阵

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

t(Matrix/data frame)

让我们看一个例子来了解如何使用此功能

例子

a <- matrix(c(4:12), nrow=3, byrow=TRUE)
a
print("Matrix after transpose\n")
b <- t(a)
b

输出

R中的数据重塑用法图解

在数据框中连接行和列

R允许我们连接多个向量以创建数据帧。为此, R提供了cbind()函数。 R还提供了rbind()函数, 该函数允许我们合并两个数据帧。在某些情况下, 我们需要合并数据帧以访问依赖于这两个数据帧的信息。 cbind()函数和rbind()函数具有以下语法。

cbind(vector1, vector2, .......vectorN)
rbind(dataframe1, dataframe2, ........dataframeN)

让我们看一个示例, 以了解如何使用cbind()和rbind()函数。

例子

#Creating vector objects
Name <- 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 frame
info <- cbind(Name, Address, Marks)

#Printing data frame
print(info)

# Creating another data frame with similar columns
new.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 data
molten.ships <- melt(ships, id = c("type", "year"))
print("Molted Data")
print(molten.ships)
#Casting of data
recasted.ship <- dcast(molten.ships, type+year~variable, sum)
print("Cast Data")
print(recasted.ship)

输出

R中的数据重塑用法图解

赞(0) 打赏
未经允许不得转载:srcmini » R中的数据重塑用法图解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏