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