R每天汇总

时间:2017-06-26 06:50:03

标签: r aggregate lubridate

我借用了这里给出的可重复的例子:

Aggregate daily level data to weekly level in 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

4 个答案:

答案 0 :(得分:1)

我们可以使用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

答案 1 :(得分:1)

您可以尝试:

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

答案 2 :(得分:0)

我们可以使用<div id="chart_line" style="position: relative;"> <input list="myUL" type="text" id="myInput" onclick="myFunction()" onkeyup="myFunction()" style="width:30%;"> <div id="triggers"> <img class="trigger" onclick="deleteValue()" src="css/clearT.png" id="cross"> <img class="trigger" src="css/combo_arrow.png" id="arrow"> </div> <datalist id="myUL"> <option value="United State"/> <option value="United Kingdom"/> <option value="Afghanistan"/> <option value="Aland Islands"/> <option value="Albania"/> <option value="United State"/> <option value="United Kingdom"/> <option value="Afghanistan"/> <option value="Aland Islands"/> <option value="Albania"/> <option value="undefined"/> </datalist> </div>

执行此操作
data.table

答案 3 :(得分:0)

使用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]