簡體   English   中英

合並與排序:按月/年排序數據框

[英]Merge vs Sort: ordering dataframe by month/year

我需要根據月/年格式按時間順序對數據框進行排序,並獲取月度總和和均值。 我已經嘗試了幾次嘗試:這是合並或排序的問題,而且我沒有干凈的數據框。

這是一個可重現的示例。 日期應該是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

感謝您的任何建議。

使用dplyr ,我們將format dplyr '( %m-%Y )分組,並summarise為'Income'的summean

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM