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