Cómo apilar columnas de marcos de datos en R

A menudo, es posible que desee apilar dos o más columnas de marcos de datos en una columna en R.

Por ejemplo, es posible que desee partir de esto:

  persona prueba resultado1 resultado2
     A 1 7 4
     A 2 6 4
     B 1 6 5
     B 2 5 5
     C 1 4 3
     C 2 4 2

A esto:

   valor de los resultados del ensayo de la persona
      A 1 resultado1 7
      A 2 resultado1 6
      B 1 resultado1 6
      B 2 resultado1 5
      C 1 resultado1 4
      C 2 resultado1 4
      A 1 resultado2 4
      A 2 resultado2 4
      B 1 resultado2 5
      B 2 resultado2 5
      C 1 resultado2 3
      C 2 resultado2 2

Este tutorial explica dos métodos que puede usar en R para hacer esto.

Método 1: usar la función de pila en Base R

El siguiente código muestra cómo apilar columnas usando la función de pila en base R:

#create los datos originales del marco de
 datos <- data.frame (person = c ('A', 'A', 'B', 'B', 'C', 'C'),
                   ensayo = c (1, 2, 1, 2, 1, 2),
                   resultado1 = c (7, 6, 6, 5, 4, 4),
                   resultado2 = c (4, 4, 5, 5, 3, 2))

# apilar la tercera y cuarta columnas 
cbind (data [1: 2], stack (data [3: 4]))

   valores de prueba de persona ind
1 A 1 7 resultado1
2 A 2 6 resultado 1
3 B 1 6 resultado1
4 B 2 5 resultado1
5 C 1 4 resultado1
6 C 2 4 resultado 1
7 A 1 4 resultado2
8 A 2 4 resultado 2
9 B 1 5 resultado2
10 B 2 5 resultado2
11 C 1 3 resultado2
12 C 2 2 resultado2

Método 2: use la función Melt de Reshape2

El siguiente código muestra cómo apilar columnas usando la función de fusión de la biblioteca reshape2 :

#load library
biblioteca (reshape2)

#create los datos originales del marco de
 datos <- data.frame (person = c ('A', 'A', 'B', 'B', 'C', 'C'),
                   ensayo = c (1, 2, 1, 2, 1, 2),
                   resultado1 = c (7, 6, 6, 5, 4, 4),
                   resultado2 = c (4, 4, 5, 5, 3, 2))

# derretir columnas del marco de datos 
derretir (datos, id. var = c (' persona ', ' prueba '), variable.name = ' resultados ')

   valor de los resultados del ensayo de la persona
1 A 1 resultado1 7
2 A 2 resultado 1 6
3 B 1 resultado1 6
4 B 2 resultado 1 5
5 C 1 resultado 1 4
6 C 2 resultado 1 4
7 A 1 resultado 2 4
8 A 2 resultado 2 4
9 B 1 resultado2 5
10 B 2 resultado2 5
11 C 1 resultado 2 3
12 C 2 resultado 2 2

Puede encontrar la documentación completa para la función de fusión aquí .

Recursos adicionales

Cómo cambiar dos columnas en R
Cómo cambiar el nombre de las columnas en R
Cómo sumar columnas específicas en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Este tutorial explica la diferencia entre una prueba t y un ANOVA , junto con cuándo usar cada prueba. Comprensión…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!