【发布时间】:2018-07-14 18:42:10
【问题描述】:
我知道之前已经提出过与此问题相关的问题(here 和 here),但一些假设和目标不同,我无法将其转化为这种情况。我也是R新手。
我有一个结构如下的数据框:
STATION DATE PRCP
USC00352972 1910-01-01 0
USC00352972 1910-02-01 0
USC00352972 1910-03-01 0
USC00352972 1910-04-01 0
USC00352972 1910-05-01 0
USC00352972 1910-06-01 0
USC00352972 1910-07-01 0
USC00352972 1910-08-01 0
USC00352972 1910-09-01 0
USC00352972 1910-10-01 0
USC00352972 1910-11-01 0
USC00352972 1910-12-01 0
... ... .
US1ORLA0076 2018-01-01 0
US1ORLA0076 2018-02-01 0
US1ORLA0076 2018-03-01 0
US1ORLA0076 2018-04-01 0
US1ORLA0076 2018-05-01 0
US1ORLA0076 2018-06-01 0
US1ORLA0076 2018-07-01 0
US1ORLA0076 2018-08-01 0
US1ORLA0076 2018-09-01 0
US1ORLA0076 2018-10-01 0
US1ORLA0076 2018-11-01 0
US1ORLA0076 2018-12-01 0
数据包含数十个站点和数十万个观测值。它按车站字母顺序列出,然后按日历年(1-12 月)排序。
我想重新排列此数据集,使其按我们的“水年”(10 月至 9 月)列出。从概念上讲,这很简单:
对于每一行(按时间顺序)> 如果该行的月份是 10-12 > 将该行直接放在其车站最早日期行的上方。
但我怀疑这种逻辑是否符合 R 语言,而且我不确定如何对其进行编码。在 R 中实现此结果的最常规方法是什么?什么是最有效的?
【问题讨论】:
-
你不应该重新排序数据:如果
month < 10,降水属于上一个水年 -
你是对的。我错误地认为我需要将所有 10-12 月份的条目的月份值更改为 1-3。但实际上,我需要将所有 10-12 个月的条目的年份值更改为 year+1,将这些月份分配到下一年。而且,正如下面的答案所暗示的,我应该创建一个包含水年值的新列,允许我按水年组织条目而不改变它们的日期。
标签: r