首页 文章

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

提问于
浏览
0

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

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

谢谢你的建议 .

1 回答

  • 0

    使用 dplyr ,我们将 format ted 'Date'( %m-%Y )和 summarise 分组为 summean 'Income' .

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

相关问题