【发布时间】:2016-06-25 00:25:27
【问题描述】:
我一直在寻找一种方法来按自定义月份顺序(3 月 - 2 月)而不是按字母顺序、时间顺序、按年份等对时间序列进行排序。我想保持年份,我有大约 60 年的数据,所以我不能只按月排序。我尝试转换为因子和排序,但没有奏效。这是我的数据的 sn-p:
Date GageFlow Month
1 1955-10-01 0.00 10
2 1955-10-02 0.00 10
3 1955-10-03 0.00 10
4 1955-10-04 0.00 10
因此,理想情况下,我希望时间序列从 1956 年 3 月 1 日开始,并从 3 月而不是 10 月开始循环遍历每一天、每一月、每一年。换句话说,日期的顺序应该是从 1955 年 3 月到 1955 年 12 月,然后是 1955 年 1 月到 2 月,然后是 1956 年 3 月到 12 月等等......
【问题讨论】:
-
我不关注。你想要什么输出?无论年份是从 3 月开始还是从 1 月开始,排序顺序都是相同的。
-
是按
(month-3) %% 12排序的,你是什么意思? IE。 1955 年 3 月 - 1955 年 12 月,随后是 1955 年 1 月至 2 月,然后是 1956 年 3 月至 12 月等...... -
如果是 `df$Month2 =
(Month-3) %% 12; arrange(df, Year, Month2)应该这样做 -
@dww 是的,这正是我想要的。当我尝试您的线路时,我收到有关“年份”的错误消息。我看到安排是从 plyr 中提取的……“年”是否需要成为它自己的列或格式化为 lubridate/posit 向量?消息:顺序错误(年,月 2):找不到对象“年”
-
@thelatemail。我不明白为什么我在这个问题上被否决了。是的,我想要的是 df 排序使得第一个月是三月,而不是十月。这会有所不同,因为我每年都在做统计,年份是 3 月到 2 月。
标签: r sorting time-series lubridate