Cómo apilar columnas de marcos de datos en R

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

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/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

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!