我需要按照月/年格式按时间顺序对数据框进行排序,并获得每月的总和和平均值。 我尝试了几次尝试:这是合并或排序的问题,我没有得到干净的数据框。
这是一个可重复的例子。 日期应该是class()格式。
Date <- c('2008-05-12','2006-01-30', '2006-02-29', '2006-01-15', '2008-05-20','2008-09-26')
Income <- c(10, 20, 30, 20, 10, 20)
df<-data.frame(Date,Income)
我想要获得此表单的data.frame
ShortDate Sum Mean
01-2006 40 20
02-2006 30 30
05-2008 20 10
09-2008 20 20
感谢您的任何建议。
答案 0 :(得分:0)
使用dplyr
,我们按format
日期&#39;日期&#39;进行分组。 (%m-%Y
)和summarise
与{&n;&#39;收入&{39}的sum
和mean
。
library(dplyr)
df %>%
group_by(ShortDate = format(as.Date(Date), "%m-%Y")) %>%
summarise(Sum = sum(Income), Mean = mean(Income))
# ShortDate Sum Mean
# <chr> <dbl> <dbl>
#1 01-2006 40 20
#2 02-2006 30 30
#3 05-2008 20 10
#4 09-2008 20 20
或base R
aggregate
do.call(data.frame, aggregate(Income~ShortDate,
transform(df, ShortDate = format(as.Date(Date), "%m-%Y")),
FUN = function(x) c(Sum = sum(x), Mean = mean(x))))