es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Editar tablas con RStudio

Phylum Abundance
Bacteroidetes 12
Firmicutes 4
Proteobacteria 3
Firmicutes 21
Firmicutes 9
Bacteroidetes 15
Proteobacteria 3
Bacteroidetes 8
Verrucomicrobia 2
Bacteroidetes 5

Mi pregunta es que tengo una tabla como la de arriba en R Studio. Quiero escribir esta tabla combinando las filas similares en la columna de “Phylum” en una nueva tabla y sumando los valores de la columna “Abundance” mientras hago esto, pero no he encontrado una manera. Ejemplo de resultado:

Phylum Abundance
Firmicutes 34
Bacteroidetes 40
Proteobacteria 6
Verrucomicrobia 2

¿Puedes ayudarme a encontrar el código que me permita obtener el resultado anterior? Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puedes utilizar las funciones group_by() y summarize() de dplyr.

    Aquí tienes un ejemplo de código:

    library(dplyr)
    
    # crear un data frame con la tabla proporcionada
    df <- data.frame(
      Phylum = c("Bacteroidetes", "Firmicutes", "Proteobacteria", "Firmicutes", 
                 "Firmicutes", "Bacteroidetes", "Proteobacteria", "Bacteroidetes", 
                 "Verrucomicrobia", "Bacteroidetes"),
      Abundance = c(12, 4, 3, 21, 9, 15, 3, 8, 2, 5)
    )
    
    # agrupar el data frame por Phylum y calcular la abundancia total para cada Phylum
    df2 <- df %>%
      group_by(Phylum) %>%
      summarize(Abundance = sum(Abundance))
    
    # imprimir el nuevo data frame
    df2
    

    El código anterior dará como resultado lo siguiente:

    # A tibble: 4 x 2
      Phylum         Abundance
      <chr>              <dbl>
    1 Bacteroidetes         40
    2 Firmicutes            34
    3 Proteobacteria         6
    4 Verrucomicrobia        2
    

    Este nuevo data frame df2 contiene la abundancia total para cada Phylum, al igual que la salida de ejemplo que proporcionaste.

Comments are closed.