根据水年创建日索引

2024-03-27

我正在处理水文数据,我需要水年。我已经根据之前在此论坛上发布的功能成功创建了一个水年专栏。我想要的是有一个陪伴water day范围从 1-365(闰年为 366)以匹配水年序列。请注意,水年是由其结束的日历年指定的。例如,2010水年从2009年10月1日开始,到2010年9月30日结束。

基本上,我想要一个列,每当日期达到每年的 10 月 1 日时,该列就从 1-365(闰年为 366)开始序列。

我的数据集范围从 1950 年到 2099 年,因此我需要某种方式来自动化此过程。这个问题的闰年部分给我带来了麻烦。

我在下面提供了代码来创建数据集。

# Create a data_set with datetime, year, month, day, jd, wtr_yr

library(lubridate)

datetime <- seq(as.Date("1950/1/1"), as.Date("2099/12/31"), by = "day")
year <- year(datetime)
month <- month(datetime)
day <- day(datetime)
julian_day <- yday(datetime)

# make dataframe with all time components
datetime_dataframe <- data.frame(datetime, year, month, day, julian_day)

# Create function to derive water year. Credit goes to Caner and MrFlick.

wtr_yr <- function(dates, start_month=10) {
  # Convert dates into POSIXlt
  dates.posix = as.POSIXlt(dates)
  # Year offset
  offset = ifelse(dates.posix$mon >= start_month - 1, 1, 0)
  # Water year
  adj.year = dates.posix$year + 1900 + offset
  # Return the water year
  adj.year
}

#  Use fn to add water year to the dataframe
datetime_dataframe$wtr_yr <-wtr_yr(datetime_dataframe$datetime)

head(datetime_dataframe)

这应该有效。我刚用过difftime并指出您希望 wtr_day 为上一个 wtr_yr 中从 9 到 30 的天数。

library(tidyverse)
new_df <- datetime_dataframe %>%
  group_by(wtr_yr) %>% 
  mutate(wtr_day = (as.integer(difftime(datetime,ymd(paste0(wtr_yr - 1 ,'-09-30')), units = "days"))))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据水年创建日索引 的相关文章

  • 强制 Android DateUtils.getRelativeDateTimeString() 忽略设备区域设置?

    我发现使用android text format DateUtils返回 昨天 或 2 小时前 等值的相关 API 非常好 但我的应用程序并不支持 Android 所支持的每种语言 因此 我默认为英语 但对于我不支持的每种语言 相关字符串会
  • 避免回绕的 timeGetTime 的最佳替代品是什么?

    time获取时间 http msdn microsoft com en us library dd757629 VS 85 aspx查询系统时间似乎相当不错 然而 它的返回值仅为 32 位 因此大约每 49 天环绕一次 在调用代码中检测翻转
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • 使用 fread 导入数据后所有列均作为字符

    我导入了一个 CSV 文件 包含文本列和数字列 x lt fread myfile csv header TRUE verbose T na strings c null null 但导入后 当我运行summary x 时 所有列都被视为字
  • 读取多个 CSV 文件,并在文件开头跳过不同行数

    我必须阅读大约 300 个单独的 CSV 我已经成功使用循环和结构化 CSV 名称来自动化该过程 然而 每个 CSV 在开头都有 14 17 行垃圾 并且随机变化 因此在 read table 命令中硬编码 skip 参数将不起作用 每个
  • 在 Jest 测试中设置时刻时区

    我有 util 函数 它以特定的日期格式解析给定的日期 即 2019 01 28 然后使用momentJS检索当天的开始并将其转换为 ISO 日期格式 dates js import moment from moment export co
  • R 在读取文件时添加额外的数字

    我一直在尝试读取一个包含日期字段和数字字段的文件 我的数据在 Excel 工作表中 如下所示 Date X 1 25 2008 0 0023456 12 23 2008 0 001987 当我在 R 中使用readxl read xlsx函
  • 递归累积函数

    我需要在 R 中编写一个累积求和函数 但我一直碰壁 该函数具有以下结构 a x1 a x2 a 2 x1 a x3 a 2 x2 a 3 x1 a x4 a 2 x3 a 3 x2 a 4 x1 等等 cumsum 似乎不适用于此类功能 有
  • TSQL - 创建从日期表,同时忽略带条件的中间步骤

    我在 MS SQL 服务器中有以下表结构 现在 我想根据以下规则获取每个 id 的 in 日期 如果第二天 23 59 出 和 00 00 进 则忽略这些 如果同一天有 out 和 in 请忽略这些 例如我应该得到以下结果 id in ou
  • 根据条件计算平均值

    下面是我的数据框 Row ID A B 1 0 0 2 0 0 3 0 0 4 0 1 5 0 1 6 0 1 7 62 75 0 8 100 0 9 100 0 10 100 1 11 100 1 12 100 1 13 100 1 14
  • 在 R 中索引数据帧

    再会 我不明白这里的主题 就像它有效但我不明白为什么 我有这个数据库 planets df is pre loaded in your workspace Use order to create positions positions lt
  • 使用 ggplot 未完全填充等值线图

    我正在尝试使用以下方法绘制我的第一个填充等高线图ggplot 根据我的数据 我期待类似的结果 但我的结果是 a lt c 1 1 1 1 1 3 1 2 2 2 2 2 2 5 2 1 3 3 3 3 1 3 2 b lt c rep c
  • 如何使用 ggplot2 绘制 NA 间隙

    在 R 的基本绘图中 如果数据系列 ggplot2 中存在 NA 则会绘制间隙 举个例子看看 df data frame x c 1 10 y c 1 10 df 5 7 NA plot df type l 但是 ggplot2 删除了缺失
  • R源代码.调用函数[重复]

    这个问题在这里已经有答案了 我正在查看R中cov的source code 并遇到了一段我不太明白的代码 协方差的数学定义goes http en wikipedia org wiki Covariance here if method pe
  • XCODE:如何从设备获取/验证准确的时间戳

    在没有互联网连接的情况下是否可以获得 NTP 或准确的时间戳 我不能接受 不信任带有 NSDate date 的设备时间戳 因为它可以由用户修改 并且我的应用程序将通过修改系统日期和时间而被黑客攻击 除此之外 是否有任何方法可以检查系统日期
  • R 抑制系统或 shell 命令的控制台输出

    我有这个 Windows 批处理文件 我使用 R 从 R 调用该文件shell 命令 该批处理文件执行一些计算并将它们写入磁盘上 也写入屏幕上 我只对磁盘输出感兴趣 我无法更改批处理文件 批处理文件可能有点愚蠢 例如 echo off ec
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 获取行名以 ABC111 开头的所有行

    我们有以下数据框 col1 col2 col3 ABC111001 12 12 13 ABC111002 3 4 5 ABC000111 7 6 1 ABC000112 9 23 1 如何获取行名以 开头的所有行ABC111 如下 ABC1
  • PHP date_sun_info 错误时间

    我正在尝试使用 PHPdate sun info函数获取全天太阳某些位置的时间信息 目前我正在使用类似于中的代码文档 http php net manual en function date sun info php sun info da
  • 为“facet_wrap”中的每列创建边框和标题

    我想在每个方面周围放置带有标签和标题的黑色边框facet wrap 与此类似的东西 样本数据 library tidyverse mtcars gt mutate gear factor gear levels c 4 3 5 gt ggp

随机推荐

  • 从 NetLogo 中的有界正态分布中选择值

    我正在尝试让 Ne tLogo 按照 stackoverflow 中上一个问题中的建议从有界随机正态分布中绘制值 NetLogo 如何确保变量保持在定义的范围内 https stackoverflow com questions 20230
  • Swift根据数据改变tableviewcell边框颜色

    我已经编写了一个代码 用于根据 inStock 或 outStock 更改单元格边框颜色 如果是 inStock 它将是红色边框 否则它将是绿色 但我它对我不起作用 我将它放在 willDisplayCell 中 这里是我的代码 func
  • MySQL 到 PostgreSQL 表创建转换 - 字符集和排序规则

    我想从 MySQL 迁移到 PostgreSQL 我的创建表查询是这样的 CREATE TABLE IF NOT EXISTS conftype CType char 1 NOT NULL RegEx varchar 300 default
  • 哪个更好/更快:连接许多表或选择一张大表

    我们正在使用 Oracle 11 这是我们用 Java 编写的应用程序 每天一次 通常是下午 我们的数据库由于许多大的 SQL 查询而冻结 我想以某种方式优化这个查询 该查询由不同表的许多联接组成 我的问题是 使用左连接对性能更好 还是将所
  • 流浪者 403 禁止

    我已经成功运行 Vagrant 大约一周了 昨晚我运行了 vagrant reload 现在我无法再访问我的网站 VirtualBox 版本 4 2 16 流浪者版本1 2 7 我的 Vagrantfile 和 bootstrap sh h
  • 当反向关系上 full=True 时,Django Tastypie 会抛出“超出最大递归深度”。

    如果运行以下代码 我会超出最大递归深度 from tastypie import fields utils from tastypie resources import ModelResource from core models impo
  • Presto 和 Impala 之间的基本架构、SQL 合规性和数据使用场景有哪些差异?

    有专家能从这些角度对Presto和Impala的区别给出一些简洁的答案吗 基础架构设计 SQL合规性 现实世界的延迟 任何 SPOF 或容错功能 结构化和非结构化数据使用场景表现 Apache Impala 是仅适用于 HDFS Hive
  • WebElements 列表中的相对 Xpath

    在收集 WebElements 列表后是否可以使用相对 xpath 如果是这样 最好的方法是什么 这就是我所拥有的 List
  • Char 未转换为 int

    由于某种原因 我的 C 程序拒绝将 argv 的元素转换为整数 我不明白为什么 int main int argc char argv fprintf stdout s n argv 1 Make conversions to int in
  • 在 docker 容器内使用 RVM 等版本管理器是一种不好的做法吗?

    我是使用 docker 的新手 到目前为止我无法找到许多包含的 ruby rails 图像RVM or rbenv 我看到的最常见的事情是每个容器有多个tags每个标记的图像版本都有only one安装的 Ruby 版本 看到这个image
  • 我可以从另一个进程中卸载 DLL 吗? (Win32)

    我想从另一个进程卸载 DLL 是否可以 如果是 该怎么做 我使用的是Win32 API 非常感谢 是的 这是可能的 它称为 DLL 弹出 某些 DLL 注入器具有该功能 通常加载 DLL 的方式是通过加载库 http msdn micros
  • 如何:片段内的gridview?

    我想创建一个像 android market 一样的 gridview 我想用互联网上数据库中的图像填充它 它需要与 androidv4 support 一起使用 因为我想运行 2 2 直到 4 0 有人说 在4 0之前不可能创建gridv
  • 如何将 DateTime.TryParse 与 Nullable 一起使用?

    我想使用 DateTime TryParse 方法将字符串的日期时间值获取到 Nullable 中 但是当我尝试这个时 DateTime d bool success DateTime TryParse some date text out
  • CheckedChanged 事件中的问题

    我有一个复选框 并且我已订阅 CheckedChanged 事件 处理程序在那里执行一些操作 我以编程方式选中和取消选中该复选框 例如 chkbx Name Checked true 并且 CheckedChanged 事件被触发 我希望仅
  • 如何创建链式管道?

    我想创建一个简单的链式管道 我发现this https stackoverflow com questions 33658355 piping output from one function to another using python
  • SSIS 脚本组件不允许文本流输出

    我正在尝试使用 SSIS 将 JSON 文件导入到我的数据库中 由于我使用的是 SQL Server 2016 因此我可以将文件放在一行中并使用 OPENJSON 读取它们 我的问题是不想只引入 JSON 文本 我还想需要从文件名和当前目录
  • 如何将CAP文件加载到java卡

    我是java卡的新手 你能帮我看看如何将Applet CAP文件解析为APDU吗 用于将此 CAP 文件安装到支持 GP2 2 的卡上 你应该尝试使用GPShell http sourceforge net projects globalp
  • 无法在 Mac OS X 10.6 上的 Python 中将 Matplotlib 中的字体更改为 Helvetica

    我正在尝试将 matplotlib 字体更改为 helvetica 我想在 PDF 图中使用它 我尝试以下操作 import matplotlib matplotlib use PDF import matplotlib pylab as
  • 将用户重定向到不同 ASP.NET Core Razor 网站中的页面

    我有一个 ASP NET Core 2 1 Razor 应用程序 其中有两个在登录前处于活动状态的菜单项 我想在单击任一菜单项时转移 重定向 到其他网站 我尝试过重定向 如下所示 但当前 url 添加到我指定的字符串中 public IAc
  • 根据水年创建日索引

    我正在处理水文数据 我需要水年 我已经根据之前在此论坛上发布的功能成功创建了一个水年专栏 我想要的是有一个陪伴water day范围从 1 365 闰年为 366 以匹配水年序列 请注意 水年是由其结束的日历年指定的 例如 2010水年从2