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



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

| 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的新手,所以任何建议将不胜感激!

使用data.table中的week函数,您可以添加每天的一周

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

然后你可以用

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
<小时 />

数据:

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

最新更新