Tengo el marco de datos resambling el uno en el siguiente

Date       Expenditure Indicator
29-01-2011 5455        212
25-01-2012 5452        111
11-02-2011 365         5

Actualmente estoy interesado en un resumen de la el Gasto valores, estoy tratando de utilizar la función siguiente

dta.sum <- aggregate(x = dta, FUN = sum, 
                         by = list(Group.date = dta$date))

pero R devuelve el siguiente error, Error en el Resumen.Fecha(c(15614L, 15614L, 15614L, 15614L, 15614L, 15614L, la suma no se define por «Fecha» objetos. El Fecha columna se ha definido previamente como la fecha con el uso de la como.Fecha función. Función análoga pero con la significa funciona bien.

dta.sum <- aggregate(x = dta, FUN = mean 
                             by = list(Group.date = dta$date))

Me gustaría mantener el formato de la fecha la fecha.

OriginalEl autor Konrad | 2014-07-16

4 Comentarios

  1. 5

    Indicar las variables que están tratando de obtener el total de la suma de instrucción, y este problema debe ser resuelto:

    dta.sum <- aggregate(x = dta[c("Expenditure","Indicator")],
                         FUN = sum,
                         by = list(Group.date = dta$Date))

    EDITADO PARA AÑADIR EXPLICACIÓN: Cuando se le da el aggregate argumento, como acaba de dta, agregado de los intentos de aplicar el argumento de cada columna. sum no está definida para los valores de fecha en R, y por lo tanto usted está recibiendo errores. Desea excluir de la columna de agrupación mediante el código descrito anteriormente.

    Muchas gracias parece que está funcionando. Solo para agregar a la discusión, puedo también hacer el viejo columna fecha de desaparecer en la misma función, sin hacer lista(fecha = dta$fecha)? Me gusta mantener las funciones ordenada y concisa y se genera una tabla con el Grupo.la fecha y la columna de la fecha, siendo redundante. Me gustaría que la función de agregado a la caída de la redundantes columna de fecha de forma automática, si es posible.
    Creo que usted necesita para hacer el list() pero que usted puede ser capaz de salirse sin nombrar los elementos de la lista (he.e sin Grupo.fecha).
    Gracias por todas las respuestas.

    OriginalEl autor TARehman

  2. 4

    Actualización de la base y el uso data.table lugar para simplificar (y la velocidad) el código de la vida:

    library(data.table)
    
    dt = as.data.table(dta)
    
    dt[, lapply(.SD, sum), by = Date]

    OriginalEl autor eddi

  3. 4

    O uso dplyr:

    library(dplyr)
    
    dta %>%
      group_by(Date) %>%
      summarise(Tot.Expenditure = sum(Expenditure))

    OriginalEl autor rrs

  4. 3
    df <- data.frame(c('29-01-2011', '25-01-2012', '11-02-2011'), c(5455, 5452, 365), c(212, 211, 5))
    colnames(df) <- c('Date', 'Expenditure', 'Indicator')
    colSums(df[2])
    
    #>Expenditure 
    #11272 

    OriginalEl autor tagoma

Dejar respuesta

Please enter your comment!
Please enter your name here