首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R:如何检查数据集中每周的变化?

R:如何检查数据集中每周的变化?
EN

Stack Overflow用户
提问于 2020-06-25 02:04:29
回答 1查看 18关注 0票数 0

我有一个2018年苏丹英镑每日汇率数据集。我有月份、日期和年份列。它看起来是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
| Year | Month | Date | USDollar |
|------|-------|------|----------|
| 2018 |   6   |  10  |  38.50   |
| 2018 |   6   |  12  |  38.52   |
| 2018 |   6   |  14  |  38.61   |
| 2018 |   6   |  18  |  38.63   |
| 2018 |   6   |  21  |  38.63   |
| 2018 |   6   |  22  |  38.65   |
| 2018 |   6   |  23  |  39.41   |
| 2018 |   6   |  24  |  39.42   |
| 2018 |   7   |  02  |  39.43   |
| 2018 |   7   |  03  |  39.50   |

诸若此类。正如您所看到的,我没有每天的数据,但我有大多数日期的数据。我想要看到的是检查每月和每周的变化,以便查看数据中是否有任何突然的峰值。我想要找到“切割”数据的方法,看看是否存在数据突然上升或下降的自然转折点。

目前,我只是使用scatter.smooth(df$month, df$usdollar)创建了一些月度散点图,它确实显示汇率似乎在10月份左右膨胀。但我想说得更具体一些;我如何才能查看周与周之间的变化,并将数据划分得更窄?理想情况下,我希望查看周与周之间的变化,并运行每周的汇总统计信息。这有可能吗?

我真的是R的新手,所以任何建议都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2020-06-25 02:13:32

使用data.table中的week函数,您可以添加每天所在的星期

代码语言:javascript
代码运行次数:0
运行
复制
library(data.table)
df$Week<- week(with(df,paste(Year,Month,Date,sep='-')))

> df 
   Year Month Date USDollar Week
1  2018     6   10    38.50   24
2  2018     6   12    38.52   24
3  2018     6   14    38.61   24
4  2018     6   18    38.63   25
5  2018     6   21    38.63   25
6  2018     6   22    38.65   25
7  2018     6   23    39.41   25
8  2018     6   24    39.42   26
9  2018     7    2    39.43   27
10 2018     7    3    39.50   27

然后你可以按周/年取平均值:

代码语言:javascript
代码运行次数:0
运行
复制
aggregate(USDollar ~ Year + Week, df, mean)

  Year Week USDollar
1 2018   24 38.54333
2 2018   25 38.83000
3 2018   26 39.42000
4 2018   27 39.46500

数据:

代码语言:javascript
代码运行次数:0
运行
复制
df <- structure(list(Year = c(2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 
2018L, 2018L, 2018L, 2018L), Month = c(6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 7L, 7L), Date = c(10L, 12L, 14L, 18L, 21L, 22L, 23L, 
24L, 2L, 3L), USDollar = c(38.5, 38.52, 38.61, 38.63, 38.63, 
38.65, 39.41, 39.42, 39.43, 39.5)), class = "data.frame", row.names = c(NA, 
-10L))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62561385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档