簡體   English   中英

每天匯總在R中

[英]Aggregate on a daily basis in R

我借用此處給出的可復制示例:

將每日級別數據匯總到R中的每周級別

因為它與我想做的非常接近。

   Interval    value

1  2012-06-10   552
2  2012-06-11  4850
3  2012-06-12  4642
4  2012-06-13  4132
5  2012-06-14  4190
6  2012-06-15  4186
7  2012-06-16  1139
8  2012-06-17   490
9  2012-06-18  5156
10 2012-06-19  4430
11 2012-06-20  4447
12 2012-06-21  4256
13 2012-06-22  3856
14 2012-06-23  1163
15 2012-06-24   564
16 2012-06-25  4866
17 2012-06-26  4421
18 2012-06-27  4206
19 2012-06-28  4272
20 2012-06-29  3993
21 2012-06-30  1211
22 2012-07-01   698
23 2012-07-02  5770
24 2012-07-03  5103
25 2012-07-04   775
26 2012-07-05  5140
27 2012-07-06  4868
28 2012-07-07  1225
29 2012-07-08   671
30 2012-07-09  5726
31 2012-07-10  5176

在他的問題中,他要求每周匯總一次,我想做的是“每周一次”匯總。

因此,我想擁有一張類似於該表的表,並添加一周中同一天的值:

    Day of the week      value
1    "Sunday"            60000
2    "Monday"            50000
3    "Tuesday"           60000
4    "Wednesday"         50000
5    "Thursday"          60000
6    "Friday"            50000
7    "Saturday"          60000

我們可以使用weekdays按周間隔對它們進行分組:

library(dplyr)
df %>%
   group_by(Day_Of_The_Week = weekdays(as.Date(Interval))) %>%
   summarise(value = sum(value))


# Day_Of_The_Week value
#            <chr> <int>
#1          Friday 16903
#2          Monday 26368
#3        Saturday  4738
#4          Sunday  2975
#5        Thursday 17858
#6         Tuesday 23772
#7       Wednesday 13560

你可以試試:

aggregate(d$value, list(weekdays(as.Date(d$Interval))), sum)

我們可以使用data.table來做到這data.table

library(data.table)
setDT(df1)[, .(value = sum(value)), .(Dayofweek = weekdays(as.Date(Interval)))]
#   Dayofweek value
#1:    Sunday  2975
#2:    Monday 26368
#3:   Tuesday 23772
#4: Wednesday 13560
#5:  Thursday 17858
#6:    Friday 16903
#7:  Saturday  4738

使用lubridate https://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html

df1$Weekday=wday(arrive,label=TRUE)

library(data.table)
df1=data.table(df1)

df1[,sum(value),Weekday]

暫無
暫無

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

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