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.

Agregar todos los valores en una columna del marco de datos donde cada celda es otro vector.

Tengo un marco de datos estructurado de la siguiente manera:

MesAño Total
01/2020 c(1, 1, 1, 1, 1…)
02/2020 c(2, 14, 6, 12, 91…)
… …

¿Cómo puedo hacer este marco de datos para poder sumar todos los valores en cada vector y almacenarlos nuevamente en el marco de datos? Entonces, si la suma total del primer vector es 100, ¿cómo puedo obtener esa suma y almacenarla en mi marco de datos?

Hasta ahora, he intentado hacer una agregación, pero eso devuelve un error. Mi agregación se veía así:
> aggregate(df$total ~ df$MonthYear, df, FUN = sum), sin embargo, al hacer esto, obtuve un error de Variable Nula para la columna del vector y no sé cómo solucionarlo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para sumar todos los valores en cada vector y guardarlos nuevamente en el marco de datos, puedes utilizar la función apply() en R. Aquí tienes cómo hacerlo:

    df$sum_total <- apply(df['Total'], 1, sum)
    

    Esto creará una nueva columna en el marco de datos existente llamada “sum_total” que contendrá la suma de todos los valores en la columna “Total” para cada fila.

    Alternativamente, puedes utilizar el paquete dplyr para obtener el mismo resultado:

    library(dplyr)
    
    df <- df %>% 
      mutate(sum_total = rowSums(Total))
    

    Este código primero carga el paquete dplyr y luego utiliza la función mutate() para crear una nueva columna llamada “sum_total” en el marco de datos que contiene las sumas por fila de la columna “Total”.

    Ambos métodos deberían funcionar sin errores ni variables nulas.

Comments are closed.