本文概述
- 转置矩阵
- 在数据框中连接行和列
- 合并数据框
- 熔铸
文章图片
转置矩阵 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提供了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提供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提供了melt()和cast()函数。要了解其过程, 请考虑存在于MASS库中的称为ships的数据集。
例子
library(MASS)print(ships)
输出
文章图片
融化数据
现在, 我们将使用上面的数据通过融合来组织它。熔化是指将列转换为多行。我们会将上述数据集的类型和年份以外的所有列转换为多行。
例子
library(MASS)library(reshape2)molten_ships <
- melt(ships, id = c("type", "year"))print(molten_ships)
输出
文章图片
熔解数据的铸造
融合数据后, 我们可以将其转换为新的形式, 以创建每年每种船舶的汇总。为此, 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)
输出
文章图片