R语言 数据重塑

R语言 数据重塑

一般来说,在 R编程语言 中,数据处理是通过从数据框架中获取数据作为输入来完成的,数据被组织成行和列。数据框架大多被使用,因为提取数据要简单得多,因此更容易。但有时我们需要从我们收到的数据帧中重塑其格式。因此,在R语言中,我们可以使用各种函数分割、合并和重塑数据框。

在数据框中重塑数据的各种形式有

  • 矩阵的转置
  • 连接行和列
  • 数据框架的合并
  • 熔化和铸造

为什么R – 数据重塑很重要

在进行分析或使用分析函数时,由于实验或研究而获得的结果数据通常是不同的。所获得的数据通常有一个或多个列,对应或确定一个行,然后是代表测量值的若干列。我们可以说,这些识别行的列可以是数据库中某一列的复合键。

矩阵的转置

在R语言中,我们可以在t()函数的帮助下轻松计算矩阵的转置。t()函数将一个矩阵或数据框作为输入,并将该矩阵或数据框的转置作为其输出。

语法

t(Matrix/ Data frame)

例子

# R program to find the transpose of a matrix
 
first <- matrix(c(1:12), nrow=4, byrow=TRUE)
print("Original Matrix")
first
 
first <- t(first)
print("Transpose of the Matrix")
first

输出

[1] "Original Matrix"
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
[4,]   10   11   12
[1] "Transpose of the Matrix"
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

连接数据框中的行和列

在R中,我们可以使用函数连接两个向量或合并两个数据框。基本上有两个函数可以完成这些任务。

cbind()

我们可以使用 cbind() 函数按列合并向量、矩阵或数据框。

语法: cbind(x1, x2, x3)

其中x1, x2和x3可以是向量或矩阵或数据帧。

rbind()

我们可以使用 rbind() 函数将向量、矩阵或数据帧按行组合起来。

语法: rbind(x1, x2, x3)

其中x1, x2和x3可以是向量、矩阵或数据框。

例子

# Cbind and Rbind function in R
name <- c("Shaoni", "esha", "soumitra", "soumi")
age <- c(24, 53, 62, 29)
address <- c("puducherry", "kolkata", "delhi", "bangalore")
 
# Cbind function
info <- cbind(name, age, address)
print("Combining vectors into data frame using cbind ")
print(info)
 
# creating new data frame
newd <- data.frame(name=c("sounak", "bhabani"),
                   age=c("28", "87"),
                   address=c("bangalore", "kolkata"))
 
# Rbind function
new.info <- rbind(info, newd)
print("Combining data frames using rbind ")
print(new.info)

输出

[1] "Combining vectors into data frame using cbind "
     name       age  address     
[1,] "Shaoni"   "24" "puducherry"
[2,] "esha"     "53" "kolkata"   
[3,] "soumitra" "62" "delhi"     
[4,] "soumi"    "29" "bangalore" 
[1] "Combining data frames using rbind "
      name age    address
1   Shaoni  24 puducherry
2     esha  53    kolkata
3 soumitra  62      delhi
4    soumi  29  bangalore
5   sounak  28  bangalore
6  bhabani  87    kolkata

合并两个数据框架

在R语言中,我们可以使用 merge() 函数来合并两个数据框架,前提是这两个数据框架应该有相同的列名。我们可以根据一个键值来合并两个数据框。

语法: merge(dfA, dfB, …)

例子

# Merging two data frames in R
d1 <- data.frame(name=c("shaoni", "soumi", "arjun"),
                 ID=c("111", "112", "113"))
 
d2 <- data.frame(name=c("sounak", "esha"),
                 ID=c("114", "115"))
 
total <- merge(d1, d2, all=TRUE)
print(total)

输出

    name  ID
1  arjun 113
2 shaoni 111
3  soumi 112
4   esha 115
5 sounak 114

熔化和铸造

数据重塑包括许多步骤,以获得所需的或要求的格式。其中一个流行的方法是熔化数据,将每一行转换为唯一的id-variable组合,然后再铸造它。在这个过程中使用了两个函数。

melt()

它用于将一个数据框转换为一个熔融数据框。

语法: melt(data, …, na.rm=FALSE, value.name=”value”)

其中

data: 要熔化的数据

: 参数

na.rm: 将显式缺失转换为隐式缺失

value.name: 存储值

dcast()

它用于将熔化的数据框聚合成一个新的形式。

语法: melt(data, formula, fun.aggregation)

其中
data: 要熔化的数据

formula: 定义如何铸造的公式

fun.aggregation: 在有数据聚合的情况下使用

例子

# melt and cast
library(MASS)
library(reshape)
a <- data.frame(id=c("1", "1", "2", "2"),
                points=c("1", "2", "1", "2"),
                x1=c("5", "3", "6", "2"),
                x2=c("6", "5", "1", "4"))
 
print("Melting")
m <- melt(a, id=c("id", "point"))
print(m)
 
print("Casting")
idmn <- dcast(a, id~variable, mean)
print(idmn)

输出

Melting
id   points   variable   value
1     1         x1          5
1     2         x1          3
2     1         x1          6
2     2         x1          2
1     1         x2          6
1     2         x2          5
2     1         x2          1
2     2         x2          4
Casting
id    x1     x2
1     4      5.5
2     4      2.5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程