合并vs排序:按月份/年排序数据框

问题描述:

我需要按月份/年份格式按时间顺序排序数据帧,并获得每月总和和平均值。 我试了几次尝试:这是一个合并或排序的问题,我没有得到一个干净的数据框。合并vs排序:按月份/年排序数据框

这是一个可重现的例子。 日期应该是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

有2月份只有28天或2006年 – akrun

format特德 '日期'(%m-%Y)使用dplyr,我们组,summarisesum和 '收入' 的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 Raggregate

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)))) 
+0

感谢akrun。我不知道图书馆(dplyr)。有没有办法进入基地R? – MoOdEV

+0

@MoOdEV更新了一个'base R'选项 – akrun

+0

感谢您的更新! – MoOdEV