Remodelación de datos en programación R

En general, en el lenguaje de programación R , el procesamiento de datos se realiza tomando datos como entrada de un marco de datos donde los datos se organizan en filas y columnas. Los marcos de datos se utilizan principalmente ya que la extracción de datos es mucho más simple y, por lo tanto, más fácil. Pero a veces necesitamos remodelar el formato del marco de datos del que recibimos. Por lo tanto, en R, podemos dividir, fusionar y remodelar el marco de datos usando varias funciones.

Las diversas formas de remodelar datos en un marco de datos son:

  • Transposición de una array
  • Unión de filas y columnas
  • Fusión de marcos de datos
  • Fusión y Fundición

¿Por qué R: la remodelación de datos es importante?

Al realizar un análisis o usar una función analítica, los datos resultantes obtenidos debido al experimento o estudio generalmente son diferentes. Los datos obtenidos suelen tener una o más columnas que corresponden o identifican una fila seguida de un número de columnas que representan los valores medidos. Podemos decir que estas columnas que identifican una fila pueden ser la clave compuesta de una columna en una base de datos.

Transposición de una array

Podemos calcular fácilmente la transposición de una array en lenguaje R con la ayuda de la función t(). La función t() toma una array o marco de datos como entrada y proporciona la transposición de esa array o marco de datos como salida.

Sintaxis: 

t(Matrix/ Data frame)

Ejemplo:

R

# 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

Producción:

[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
 

Unión de filas y columnas en el marco de datos

En R, podemos unir dos vectores o fusionar dos marcos de datos usando funciones. Hay básicamente dos funciones que realizan estas tareas:

cbind():

Podemos combinar vectores, arrays o marcos de datos por columnas usando la función cbind() .

Sintaxis: cbind(x1, x2, x3)

donde x1, x2 y x3 pueden ser vectores o arrays o marcos de datos. 

rbind():

Podemos combinar vectores, arrays o marcos de datos por filas usando la función rbind() .

Sintaxis: rbind(x1, x2, x3)

donde x1, x2 y x3 pueden ser vectores o arrays o marcos de datos.

Ejemplo:

R

# 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)

Producción:

[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

Fusión de dos marcos de datos

En R, podemos fusionar dos marcos de datos usando la función merge() siempre que ambos marcos de datos tengan los mismos nombres de columna. Podemos fusionar los dos marcos de datos en función de un valor clave.

Sintaxis: fusionar (dfA, dfB, …)

Ejemplo:

R

# 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)

Producción:

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

Fusión y Fundición

La remodelación de datos implica muchos pasos para obtener el formato deseado o requerido. Uno de los métodos populares es fusionar los datos que convierten cada fila en una combinación única de variable de identificación y luego convertirla. Las dos funciones utilizadas para este proceso:

derretir():

 Se utiliza para convertir un marco de datos en un marco de datos fundido.

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

dónde, 

datos: datos que se  fusionarán
…: argumentos 
na.rm: convierte faltantes explícitos en faltantes implícitos 
value.name: almacenar valores

dcast(): 

Se utiliza para agregar el marco de datos fundido en un nuevo formulario.

Sintaxis: melt (datos, fórmula, diversión. agregado)

dónde, 

data: data to be melted 
formula: fórmula que define cómo lanzar 
fun.aggregate: se usa si hay una agregación de datos

Ejemplo:

R

# 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)

Producción:

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

Publicación traducida automáticamente

Artículo escrito por shaonim8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *