【发布时间】:2021-01-15 16:11:29
【问题描述】:
我在一个数据框中有一个 24 年的数据集(从 1980 年 1 月 1 日到 2014 年 12 月 31 日)的每日温度数据。 我的数据框形式如下:
| date | st1 |
|---|---|
| 1980-1-1 | -2.3 |
| 1980-1-2 | -1.2 |
| 1980-1-3 | 0.8 |
| ... | ... |
| 2014-12-31 | 4.7 |
( "..." 代表 1980 - 2014 年的数据序列) 为了使用时间序列包,我需要在时间序列类中转换数据框。我使用了以下代码:
temp_ts <- ts(temp_data$st1,start = c(1980,1,1), end = c(2014,12,31),frequency = 12)
我得到了一个完整的时间序列,每列的标题是所有月份,表格的形式是每一行的年份,如下:
| Jan | Feb | Mar | Apr | May | June | .. | |
|---|---|---|---|---|---|---|---|
| 1980 | 1.8 | -1.0 | -4.8 | -5.2 | -3.1 | .. | |
| 1981 | -5.0 | -5.2 | -3.8 | -0.5 | 0.3 | 0.2 | .. |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 2014 | 5.3 | 6.3 | -1.7 | -4.3 | -6.7 | -4.7 | .. |
(我的表中没有“...”,我只是在这里使用它来节省一些空间)
问题是这个时间序列的数据是错误的。更具体地说,5 月份我的原始数据中的温度 > 20 C,因此它不能作为平均值负值。同样的事情适用于所有其他月份。这意味着在我的时间序列中,每个月的列没有每个月的适当平均值,而是其他一些我无法确定它是如何计算的。
我希望通过创建一个时间序列来识别和解决此错误的所有帮助,其中每个值对应于相应年份和月份的平均值。
【问题讨论】:
-
数据框的
str和dim是什么?数据是否按时间排序?所有年份都正好有 12 个月吗?请发布您的数据的dput。过去两年(如果订购):dput(tail(temp_data, 24)).
标签: r time-series