Cómo transponer el marco de datos en R

Como Transponer El Marco De Datos En R



La transposición de un conjunto de datos es una de esas operaciones que reforma los datos para cumplir con los requisitos particulares del análisis. La transposición de un conjunto de datos implica filas y columnas invertidas del conjunto de datos, lo que da como resultado un nuevo conjunto de datos con columnas y filas cambiadas. R proporciona algunas funciones para transponer un conjunto de datos. En este artículo, cubriremos los diversos métodos de transposición para DataFrames en R.

Ejemplo 1: Transponer el DataFrame usando la función T() en R

La función t() es una función incorporada de R que se usa para transponer un DataFrame. Sin embargo, convierte el DataFrame en una matriz, por lo que cualquier columna no numérica se transforma en cadenas de caracteres. Considere la siguiente secuencia de comandos R para transponer el DataFrame:







MisDatos = data.frame(c1 = c(1, 2, 3, 4, 5),

c2 = c(6, 7, 8, 9, 10),
c3 = c(11, 12, 13, 14, 15))

fila.nombres(MisDatos) = c('r1','r2','r3','r4','r5')

t(MisDatos)

Aquí, declaramos el vector MyData y le asignamos data.frame(). Insertamos los datos de muestra que contienen tres columnas con los valores dentro de la función data.frame(). Después de eso, usamos la función 'row.names()' y establecemos los nombres de fila para los valores del DataFrame 'MyData'. Finalmente, transponemos el DataFrame “MyData” usando la función t().



El siguiente resultado muestra la transposición del DataFrame donde los nombres de las filas del DataFrame original se convierten en los nombres de las columnas del DataFrame transpuesto, y los nombres de las columnas del DataFrame original se pierden en la transposición:







Ejemplo 2: Transponer el DataFrame usando la función Transpose() en R

La función transpose() del paquete 'data.table' también se puede usar para transponer un DataFrame y devuelve un DataFrame. Por lo tanto, debemos asegurarnos de que el “data.table” esté instalado en R. Si no se encuentra, podemos instalarlo con el siguiente comando:

install.packages('data.table')

Ahora, podemos importar fácilmente el paquete 'data.table' para acceder a la función transpose() en R para transponer el DataFrame. Considere el siguiente código R donde se llama a la función transpose() para transponer el DataFrame:



df <- data.frame(A = c(1:5),

B = c(6:10),
C = c(11:15))


fila.nombres(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

d.f.

Aquí, creamos el marco de datos 'df' con tres columnas y cinco filas donde cada columna contiene una secuencia de números del 1 al 5, del 6 al 10 y del 11 al 15, respectivamente. Además, asignamos los nombres de fila de DataFrame usando la función row.names(). Después de eso, imprimimos el DataFrame original en la consola.

El DataFrame original se muestra en la pantalla aquí:

A continuación, transponemos el DataFrame 'df' original cambiando las filas y columnas del DataFrame.

biblioteca (tabla de datos)

df_trans <- transponer(df)

nombres de fila (df_trans) <- nombres de columna (df)

nombrescolumnas(df_trans) <- nombresfilas(df)

df_trans

Para esto, primero cargamos la biblioteca “data.table” que proporciona las herramientas para trabajar con los datos tabulares en R. Luego, se usa la función transpose() de la biblioteca “data.table”. El DataFrame transpuesto resultante se asigna a una nueva variable que es 'df_t'. Después de eso, asignamos los nombres de columna del DataFrame 'df' original como nombres de fila al DataFrame 'df_trans' transpuesto usando la función rownames(). Luego, los nombres de fila del DataFrame 'df' original se asignan como nombres de columna al DataFrame 'df_trans' transpuesto usando la función colnames().

Por lo tanto, la transposición original de DataFrame se logra en la salida. Representa cada celda en el DataFrame transpuesto en el que contiene el mismo valor que la celda correspondiente en el DataFrame original pero en una posición diferente debido a la transposición.

Ejemplo 3: Transponer el DataFrame usando la función Tidyr Library Gather() en R

El paquete tidyr de R se puede usar para transponer un DataFrame. Este método es útil cuando queremos convertir un DataFrame de formato ancho a largo y luego volver a formato ancho con filas y columnas intercambiadas. Proporciona varias funciones para transformar y reorganizar los datos. Antes, esto necesitamos descargar el paquete tidyr específicamente usando el siguiente comando:

install.packages('tidyr')

Consideremos el siguiente código R. Usamos la función de recopilación () de este paquete para transponer el DataFrame ancho por más tiempo:

biblioteca (ordenar)

norte = 10

tidy_df = data.frame(

identificación = c(1:n),
Examen1_Marcas = c(73, 219, 86, 192, 99,
                188, 72, 35, 91, 165),
Examen2_Marcas = c(217, 89, 66, 334, 99,
                101, 108, 233, 45, 300),
Examen3_Marcas = c(39, 101, 209, 289, 176,
                120, 89, 119, 199, 96))

ordenado_df

Aquí, un DataFrame 'ancho' se convierte en un DataFrame 'largo' usando tidyr. Primero, creamos un DataFrame 'tidy_df' con tres columnas. Cada una de estas columnas tiene 10 valores.

El DataFrame largo se muestra en la siguiente pantalla de salida:

Luego, pasamos el marco de datos 'tidy_df' a la función de recopilación () con el operador de canalización '%>%'. La función de recopilación () de tidyr se usa para transformar 'tidy_df' en un DataFrame largo. La función de recopilación () toma entradas con el nombre 'Exámenes', lo que indica una nueva columna para contener los nombres de las variables que se crean en la transformación. 'Marcas' especifica la columna que reúne las 'Marcas_Examen1' y 'Marcas_Examen2'.

largo <- tidy_df %>%

reunir(Exámenes, Calificaciones,
Exam1_Marks:Exam2_Marks)


largo

La salida muestra el marco de datos largo en la consola, que ahora tiene un formato 'largo' con tres columnas:

Ejemplo 4: Transponer el DataFrame usando la función Pivot_Wider() en R

La siguiente función avanzada que usamos para transponer el DataFrame es la función pivot_wider(). El pivot_wider() es una función del paquete tidyr en R que nos permite transformar un DataFrame 'largo' en un DataFrame 'ancho'. La función toma tres argumentos principales que se analizan en el siguiente código de R:

biblioteca (ordenar)

df <- datos.marco(

identificación = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
valor = c(4, 5, 6, 7, 8, 9)


)

d.f.

Aquí, primero cargamos el paquete tidyr usando la función library(). Luego, configuramos el DataFrame de muestra en 'df'. El marco de datos 'df' tiene tres columnas que contienen diferentes valores, en consecuencia. El DataFrame de muestra se puede ver en el siguiente resultado:

Después de eso, la función pivot_wider() de tidyr se usa para transformar 'df' en 'df_wide'.

df_wide <- pivot_wider(df, nombres_desde = var, valores_desde = val)

df_wide

La función pivot_wider() toma tres argumentos aquí. Primero, se necesita el DataFrame 'df' para ser transformado. Luego, el argumento names_from establece el nombre de la columna que se usará para los nuevos nombres de variables. Finalmente, el argumento values_from especifica el nombre de la columna que se usará para los nuevos valores.

El siguiente resultado representa la transposición del marco de datos largo al marco de datos ancho:

Conclusión

Utilizamos varias formas de transponer el DataFrame en R. El primer ejemplo se establece con el método integrado t(). Todos los demás ejemplos necesitaban que los paquetes se importaran para que pudiéramos usar sus funciones para la transposición de DataFrame. Sin embargo, el mejor método a utilizar depende de la situación específica y la estructura de datos con la que esté trabajando.