【问题标题】:aggregate data by year and month (and time series graph)按年和月聚合数据(和时间序列图)
【发布时间】:2016-09-05 10:21:54
【问题描述】:

如果可能的话,我需要您帮助我按年和月汇总数据并绘制图表。

我的数据在一个 csv 文件中,不知何故,数据不在一个良好的数据框中,当前显示 1 个频率并且未正确聚合。

这是数据的前几部分:

 YEAR   Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
1 1964 131.4 121.8 125.7 131.9 138.5 144.1 150.5 161.6 160.3 149.7 142.1 139.1
2 1965 133.4 127.9 129.9 132.3 141.9 152.1 156.2 157.1 159.8 149.5 146.6 130.4
3 1966 125.6 128.1 138.5 140.9 142.5 152.5 154.8 175.3 167.9 154.7 137.4 135.4
4 1967 123.8 121.5 120.4 130.2 138.2 147.8 152.3 148.0 155.2 152.8 142.9 127.4
5 1968 120.2 112.9 113.1 117.4 122.9 133.0 150.3 161.3 156.4 150.4 141.7 140.4
6 1969 128.2 118.2 129.6 137.4 151.1 150.3 156.0 162.1 155.5 148.7 139.1 127.1
7 1970 126.1 123.9 122.4 133.0 144.4 146.8 151.8 157.3 152.1 147.9 146.1 134.5
8 1971 131.3 129.8 127.5 132.1 140.3 148.4 153.6 165.1 168.4 150.2 137.8 122.7
9 1972 132.0 131.6 128.2 132.9 142.0 153.7 166.4 164.7 156.4 146.9 144.8 136.2

如您所见,我有 1964 年 1 月的数据,我试图用这些数据制作时间序列图。失败了

这是我使用的代码:

meansealevel<- ts(test_jeju, frequency=12, start=c(1964,1))

失败了,我发现数据的频率是 1。 有人知道如何正确聚合这些数据以制作正确的时间序列图吗?

【问题讨论】:

  • 请格式化您的数据和代码
  • 我回滚了您的编辑,因为数据截图不能被其他人复制粘贴,因此不是很有用。
  • 感谢编辑,这是我第一次使用论坛所以我不知道如何使用它!

标签: r graph time-series aggregate


【解决方案1】:

试试这个

test_jeju <- read.table(header=T, text=" YEAR   Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
1 1964 131.4 121.8 125.7 131.9 138.5 144.1 150.5 161.6 160.3 149.7 142.1 139.1
2 1965 133.4 127.9 129.9 132.3 141.9 152.1 156.2 157.1 159.8 149.5 146.6 130.4
3 1966 125.6 128.1 138.5 140.9 142.5 152.5 154.8 175.3 167.9 154.7 137.4 135.4
4 1967 123.8 121.5 120.4 130.2 138.2 147.8 152.3 148.0 155.2 152.8 142.9 127.4
5 1968 120.2 112.9 113.1 117.4 122.9 133.0 150.3 161.3 156.4 150.4 141.7 140.4
6 1969 128.2 118.2 129.6 137.4 151.1 150.3 156.0 162.1 155.5 148.7 139.1 127.1
7 1970 126.1 123.9 122.4 133.0 144.4 146.8 151.8 157.3 152.1 147.9 146.1 134.5
8 1971 131.3 129.8 127.5 132.1 140.3 148.4 153.6 165.1 168.4 150.2 137.8 122.7
9 1972 132.0 131.6 128.2 132.9 142.0 153.7 166.4 164.7 156.4 146.9 144.8 136.2")
meansealevel<- ts(as.vector(t(test_jeju[,-1])), frequency=12, start=c(1964,1))
plot(meansealevel)

【讨论】:

  • 非常感谢你!!!!!!顺便说一句,我的数据比我在这里所说的要长得多,并且您使用的第一个代码需要输入(或复制)所有数据并将 ") 放在最后。有什么办法吗无需复制/键入所有数据?
  • 这只是为了完成我的test_jeju 对象。我猜你已经知道了,所以不需要它。
猜你喜欢
  • 1970-01-01
  • 2014-12-15
  • 2018-09-24
  • 1970-01-01
  • 2012-12-09
  • 2022-01-14
  • 2021-04-29
  • 2019-03-29
  • 2021-12-20
相关资源
最近更新 更多