簡體   English   中英

R使用日期列聚合data.frame

[英]R aggregate data.frame with date column

我有數據框重新下面的數據框

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

我目前有興趣總結支出值,我正在嘗試使用下面的功能

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

但R返回以下錯誤, Summary.Date中的錯誤(c(15614L,15614L,15614L,15614L,15614L,15614L,:未為“日期”對象定義的總和日期列以前使用as定義為日期。日期功能。類似的功能,但平均工作正常。

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

我想將日期格式化為日期。

指出您嘗試在聚合語句中獲取聚合的變量,並且應該解決此問題:

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

編輯添加說明:當您將aggregate參數作為dta ,聚合嘗試將參數應用於每一列。 sum沒有為R中的日期值定義,因此您會收到錯誤。 您希望使用上述代碼排除分組列。

從基礎升級並使用data.table來簡化(並加速)您的代碼/生活:

library(data.table)

dt = as.data.table(dta)

dt[, lapply(.SD, sum), by = Date]

或者使用dplyr

library(dplyr)

dta %>%
  group_by(Date) %>%
  summarise(Tot.Expenditure = sum(Expenditure))
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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM