r - 创建一个变量,它是相对于一周中的小时和天的价格变化的平均值
问题描述
我想计算特定日期特定小时的平均价格变化,例如星期一的 01:00-02:00。
样本数据在这里:
Date Time Change Weekday
09/03/2016 16:00 1.980786372 Wednesday
09/03/2016 17:00 0.000000000 Wednesday
10/03/2016 16:00 6.123554913 Thursday
10/03/2016 17:00 0.851063830 Thursday
11/03/2016 10:00 0.000000000 Friday
11/03/2016 17:00 0.000000000 Friday
12/03/2016 02:00 1.924686192 Saturday
12/03/2016 03:00 4.448267388 Saturday
13/03/2016 00:00 2.973977695 Sunday
13/03/2016 23:00 -2.587601078 Sunday
14/03/2016 09:00 -1.132075472 Monday
14/03/2016 17:00 0.870827286 Monday
14/03/2016 18:00 6.057553957 Monday
15/03/2016 00:00 1.964415103 Tuesday
15/03/2016 01:00 0.493198632 Tuesday
15/03/2016 10:00 0.023116043 Tuesday
15/03/2016 11:00 0.145716696 Tuesday
16/03/2016 09:00 2.426487263 Wednesday
16/03/2016 10:00 1.609434102 Wednesday
不确定如何同时获得一周中的小时和一天的平均值?
解决方案
你可以试试:
library(dplyr)
dfn %>% group_by(Weekday,Time) %>% summarise(Avg=mean(Change,na.rm=T))
# A tibble: 19 x 3
# Groups: Weekday [7]
Weekday Time Avg
<chr> <chr> <dbl>
1 Friday 10:00 0
2 Friday 17:00 0
3 Monday 09:00 -1.13
4 Monday 17:00 0.871
5 Monday 18:00 6.06
6 Saturday 02:00 1.92
7 Saturday 03:00 4.45
8 Sunday 00:00 2.97
9 Sunday 23:00 -2.59
10 Thursday 16:00 6.12
11 Thursday 17:00 0.851
12 Tuesday 00:00 1.96
13 Tuesday 01:00 0.493
14 Tuesday 10:00 0.0231
15 Tuesday 11:00 0.146
16 Wednesday 09:00 2.43
17 Wednesday 10:00 1.61
18 Wednesday 16:00 1.98
19 Wednesday 17:00 0
#Data
dfn <- structure(list(Date = c("09/03/2016", "09/03/2016", "10/03/2016",
"10/03/2016", "11/03/2016", "11/03/2016", "12/03/2016", "12/03/2016",
"13/03/2016", "13/03/2016", "14/03/2016", "14/03/2016", "14/03/2016",
"15/03/2016", "15/03/2016", "15/03/2016", "15/03/2016", "16/03/2016",
"16/03/2016"), Time = c("16:00", "17:00", "16:00", "17:00", "10:00",
"17:00", "02:00", "03:00", "00:00", "23:00", "09:00", "17:00",
"18:00", "00:00", "01:00", "10:00", "11:00", "09:00", "10:00"
), Change = c(1.980786372, 0, 6.123554913, 0.85106383, 0, 0,
1.924686192, 4.448267388, 2.973977695, -2.587601078, -1.132075472,
0.870827286, 6.057553957, 1.964415103, 0.493198632, 0.023116043,
0.145716696, 2.426487263, 1.609434102), Weekday = c("Wednesday",
"Wednesday", "Thursday", "Thursday", "Friday", "Friday", "Saturday",
"Saturday", "Sunday", "Sunday", "Monday", "Monday", "Monday",
"Tuesday", "Tuesday", "Tuesday", "Tuesday", "Wednesday", "Wednesday"
)), class = "data.frame", row.names = c(NA, -19L))
推荐阅读
- php - 如何使用“href”清除 $_GET 变量?
- c# - AlphaBeta Pruning TicTacToe 不阻塞,是 eval 问题吗?
- arrays - Excel 动态数组运行重复次数
- node.js - Sequelize:强制更新 JSON 数组
- go - 无法使用 net.Conn.Read 从 UNIX 套接字读取
- python - 有没有更快的方法来根据重复值的数量过滤 Pandas 数据框?
- javascript - 如何解决大小写检查器的问题?
- c - 在尝试编写将文件分解为多个 JPG 的程序时不断出现分段错误
- eclipse - EclipseMercurial 下载
- javascript - 如何获取 jQuery AJAX POST 成功对象的内容长度标头?