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.

Calcular la media de filas específicas.

Tengo un conjunto de datos que contiene 10 líneas (muestras) que son de la clase “Class1” o “Class2” y columnas.

Quiero calcular la media de las filas de “Class1” y colocar el resultado en la línea 11, y calcular la media de las filas de “Class2” y colocar el resultado en la línea 12.

Los datos:

Nombre TipoClase Col1 Col2 Col3
A Class1 10 50 12
B Class2 7 20 12
C Class1 8 12 8
D Class1 9 14 17
E Class2 3 15 14
F Class2 10 15 16
G Class2 12 22 15
H Class1 10 28 10

El resultado que deseo:

   Nombre   TipoClase    Col1   Col2   Col3     
    A      Class1       10     50    12        
    B      Class2        7     20    12
    C      Class1        8     12     8
    D      Class1        9     14    17
    E      Class2        3     15    14
    F      Class2       10     15    16
    G      Class2       12     22    15
    H      Class1       10     28    10

Media clase1 NA 9.25 26 11.75
Media clase2 NA 8 18 14.25

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para calcular la media de las filas Class1 y Class2 en los datos dados, podemos utilizar la función rowMeans() en R.

    Primero, podemos seleccionar los datos correspondientes a Class1 y calcular la media de las columnas utilizando rowMeans(). Luego, podemos asignar este resultado a una nueva fila llamada Media class1 como se muestra a continuación:

    # Seleccionar los datos para Class1
    class1_data <- data[data$ClassType == "Class1", ]
    
    # Calcular las medias por fila para Class1
    class1_means <- rowMeans(class1_data[, 3:5], na.rm = TRUE)
    
    # Agregar fila para las medias de Class1
    data <- rbind(data, c("Media class1", NA, class1_means))
    

    De manera similar, podemos repetir este proceso para Class2 y asignar el resultado a una nueva fila llamada Media class2:

    # Seleccionar los datos para Class2
    class2_data <- data[data$ClassType == "Class2", ]
    
    # Calcular las medias por fila para Class2
    class2_means <- rowMeans(class2_data[, 3:5], na.rm = TRUE)
    
    # Agregar fila para las medias de Class2
    data <- rbind(data, c("Media class2", NA, class2_means))
    

    Los datos finales deberían verse así:

    Nombre TipoClase Col1 Col2 Col3
    A Class1 10 50 12
    B Class2 7 20 12
    C Class1 8 12 8
    D Class1 9 14 17
    E Class2 3 15 14
    F Class2 10 15 16
    G Class2 12 22 15
    H Class1 10 28 10
    Media class1 NA 9.25 26 11.75
    Media class2 NA 8 18 14.25

Comments are closed.