[英]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.